diff --git a/.idea/modules.xml b/.idea/modules.xml
index 1e0573a53..f8c9c15b7 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -6,6 +6,7 @@
+
\ No newline at end of file
diff --git a/data/src/main/res/values/strings.xml b/data/src/main/res/values/strings.xml
deleted file mode 100644
index 2a05ffeda..000000000
--- a/data/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
- data
-
diff --git a/domain/.gitignore b/domain/.gitignore
deleted file mode 100644
index 796b96d1c..000000000
--- a/domain/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/build
diff --git a/domain/build.gradle b/domain/build.gradle
deleted file mode 100644
index 4e035bf70..000000000
--- a/domain/build.gradle
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Nextcloud Talk application
- *
- * @author Mario Danic
- * Copyright (C) 2017-2019 Mario Danic
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-apply plugin: 'com.android.library'
-apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
-android {
- compileSdkVersion 29
- buildToolsVersion "29.0.2"
-
-
- defaultConfig {
- minSdkVersion 21
- targetSdkVersion 29
- versionCode 1
- versionName "1.0"
-
- testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
- consumerProguardFiles 'consumer-rules.pro'
- }
-
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
- }
- }
-
-}
-
-dependencies {
- implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion"
- implementation 'androidx.appcompat:appcompat:1.1.0'
- implementation 'androidx.core:core-ktx:1.1.0'
- testImplementation 'junit:junit:4.12'
- androidTestImplementation 'androidx.test.ext:junit:1.1.1'
- androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
-}
diff --git a/domain/consumer-rules.pro b/domain/consumer-rules.pro
deleted file mode 100644
index e69de29bb..000000000
diff --git a/domain/proguard-rules.pro b/domain/proguard-rules.pro
deleted file mode 100644
index f1b424510..000000000
--- a/domain/proguard-rules.pro
+++ /dev/null
@@ -1,21 +0,0 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-# http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-# public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile
diff --git a/domain/src/androidTest/java/com/nextcloud/domain/ExampleInstrumentedTest.kt b/domain/src/androidTest/java/com/nextcloud/domain/ExampleInstrumentedTest.kt
deleted file mode 100644
index bcee65ff1..000000000
--- a/domain/src/androidTest/java/com/nextcloud/domain/ExampleInstrumentedTest.kt
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Nextcloud Talk application
- *
- * @author Mario Danic
- * Copyright (C) 2017-2019 Mario Danic
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-package com.nextcloud.domain
-
-import androidx.test.platform.app.InstrumentationRegistry
-import androidx.test.ext.junit.runners.AndroidJUnit4
-
-import org.junit.Test
-import org.junit.runner.RunWith
-
-import org.junit.Assert.*
-
-/**
- * Instrumented test, which will execute on an Android device.
- *
- * See [testing documentation](http://d.android.com/tools/testing).
- */
-@RunWith(AndroidJUnit4::class)
-class ExampleInstrumentedTest {
- @Test
- fun useAppContext() {
- // Context of the app under test.
- val appContext = InstrumentationRegistry.getInstrumentation().targetContext
- assertEquals("com.nextcloud.domain.test", appContext.packageName)
- }
-}
diff --git a/domain/src/main/AndroidManifest.xml b/domain/src/main/AndroidManifest.xml
deleted file mode 100644
index 5c6dbc4e8..000000000
--- a/domain/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
diff --git a/domain/src/main/res/values/strings.xml b/domain/src/main/res/values/strings.xml
deleted file mode 100644
index 0171f1daf..000000000
--- a/domain/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
- domain
-
diff --git a/presentation/build.gradle b/presentation/build.gradle
index c3c73614c..46841a6c8 100644
--- a/presentation/build.gradle
+++ b/presentation/build.gradle
@@ -144,8 +144,6 @@ configurations.all {
dependencies {
implementation fileTree(include: ['*'], dir: 'libs')
- implementation project(':data')
- implementation project(':domain')
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.1.0-beta01'
@@ -185,6 +183,10 @@ dependencies {
implementation 'com.squareup.retrofit2:retrofit:2.6.2'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.6.2'
implementation 'com.github.aurae.retrofit2:converter-logansquare:1.4.1'
+ implementation group: 'joda-time', name: 'joda-time', version: '2.10.3'
+ implementation 'com.bluelinelabs:logansquare:1.3.7'
+ implementation group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.10.0.pr1'
+ kapt 'com.bluelinelabs:logansquare-compiler:1.3.7'
implementation 'com.google.dagger:dagger:2.24'
kapt 'com.google.dagger:dagger-compiler:2.24'
diff --git a/presentation/src/main/java/com/nextcloud/talk/adapters/items/AdvancedUserItem.java b/presentation/src/main/java/com/nextcloud/talk/adapters/items/AdvancedUserItem.java
index ae21c4774..1b8d6b6d0 100644
--- a/presentation/src/main/java/com/nextcloud/talk/adapters/items/AdvancedUserItem.java
+++ b/presentation/src/main/java/com/nextcloud/talk/adapters/items/AdvancedUserItem.java
@@ -22,10 +22,13 @@ package com.nextcloud.talk.adapters.items;
import android.accounts.Account;
import android.view.View;
-import android.widget.*;
+import android.widget.ImageButton;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.emoji.widget.EmojiTextView;
-
import butterknife.BindView;
import butterknife.ButterKnife;
import com.facebook.drawee.backends.pipeline.Fresco;
@@ -34,7 +37,7 @@ import com.facebook.drawee.view.SimpleDraweeView;
import com.nextcloud.talk.R;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.data.models.json.participants.Participant;
+import com.nextcloud.talk.models.json.participants.Participant;
import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.DisplayUtils;
import eu.davidea.flexibleadapter.FlexibleAdapter;
@@ -42,7 +45,6 @@ import eu.davidea.flexibleadapter.items.AbstractFlexibleItem;
import eu.davidea.flexibleadapter.items.IFilterable;
import eu.davidea.flexibleadapter.utils.FlexibleUtils;
import eu.davidea.viewholders.FlexibleViewHolder;
-
import java.util.List;
import java.util.regex.Pattern;
diff --git a/presentation/src/main/java/com/nextcloud/talk/adapters/items/AppItem.java b/presentation/src/main/java/com/nextcloud/talk/adapters/items/AppItem.java
index 88be4e209..2735d8410 100644
--- a/presentation/src/main/java/com/nextcloud/talk/adapters/items/AppItem.java
+++ b/presentation/src/main/java/com/nextcloud/talk/adapters/items/AppItem.java
@@ -36,7 +36,6 @@ import eu.davidea.flexibleadapter.FlexibleAdapter;
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem;
import eu.davidea.flexibleadapter.items.IFlexible;
import eu.davidea.viewholders.FlexibleViewHolder;
-
import java.util.List;
public class AppItem extends AbstractFlexibleItem {
diff --git a/presentation/src/main/java/com/nextcloud/talk/adapters/items/CallItem.java b/presentation/src/main/java/com/nextcloud/talk/adapters/items/CallItem.java
index 71ce47574..b63b8ea41 100644
--- a/presentation/src/main/java/com/nextcloud/talk/adapters/items/CallItem.java
+++ b/presentation/src/main/java/com/nextcloud/talk/adapters/items/CallItem.java
@@ -26,9 +26,7 @@ import android.text.format.DateUtils;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ImageView;
-
import androidx.emoji.widget.EmojiTextView;
-
import butterknife.BindView;
import butterknife.ButterKnife;
import com.facebook.drawee.backends.pipeline.Fresco;
@@ -38,7 +36,7 @@ import com.nextcloud.talk.R;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.events.MoreMenuClickEvent;
import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.data.models.json.conversations.Conversation;
+import com.nextcloud.talk.models.json.conversations.Conversation;
import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.DisplayUtils;
import eu.davidea.flexibleadapter.FlexibleAdapter;
@@ -46,10 +44,9 @@ import eu.davidea.flexibleadapter.items.AbstractFlexibleItem;
import eu.davidea.flexibleadapter.items.IFilterable;
import eu.davidea.flexibleadapter.utils.FlexibleUtils;
import eu.davidea.viewholders.FlexibleViewHolder;
-import org.greenrobot.eventbus.EventBus;
-
import java.util.List;
import java.util.regex.Pattern;
+import org.greenrobot.eventbus.EventBus;
public class CallItem extends AbstractFlexibleItem implements IFilterable {
@@ -114,7 +111,7 @@ public class CallItem extends AbstractFlexibleItem
System.currentTimeMillis(), 0, DateUtils.FORMAT_ABBREV_RELATIVE));
}
- if (conversation.getHasPassword()) {
+ if (conversation.hasPassword) {
holder.passwordProtectedImageView.setVisibility(View.VISIBLE);
} else {
holder.passwordProtectedImageView.setVisibility(View.GONE);
diff --git a/presentation/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java b/presentation/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java
index 1da4814b9..820975c86 100644
--- a/presentation/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java
+++ b/presentation/src/main/java/com/nextcloud/talk/adapters/items/ConversationItem.java
@@ -29,20 +29,17 @@ import android.text.format.DateUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
-
import androidx.emoji.widget.EmojiTextView;
-
import butterknife.BindView;
import butterknife.ButterKnife;
-
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.drawee.interfaces.DraweeController;
import com.facebook.drawee.view.SimpleDraweeView;
+import com.nextcloud.talk.models.json.conversations.Conversation;
import com.nextcloud.talk.R;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.models.database.UserEntity;
import com.nextcloud.talk.models.json.chat.ChatMessage;
-import com.nextcloud.data.models.json.conversations.Conversation;
import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.DisplayUtils;
import eu.davidea.flexibleadapter.FlexibleAdapter;
@@ -51,7 +48,6 @@ import eu.davidea.flexibleadapter.items.IFilterable;
import eu.davidea.flexibleadapter.items.IFlexible;
import eu.davidea.flexibleadapter.utils.FlexibleUtils;
import eu.davidea.viewholders.FlexibleViewHolder;
-
import java.util.List;
import java.util.regex.Pattern;
diff --git a/presentation/src/main/java/com/nextcloud/talk/adapters/items/GenericTextHeaderItem.java b/presentation/src/main/java/com/nextcloud/talk/adapters/items/GenericTextHeaderItem.java
index 331c52803..42067663b 100644
--- a/presentation/src/main/java/com/nextcloud/talk/adapters/items/GenericTextHeaderItem.java
+++ b/presentation/src/main/java/com/nextcloud/talk/adapters/items/GenericTextHeaderItem.java
@@ -30,7 +30,6 @@ import eu.davidea.flexibleadapter.FlexibleAdapter;
import eu.davidea.flexibleadapter.items.AbstractHeaderItem;
import eu.davidea.flexibleadapter.items.IFlexible;
import eu.davidea.viewholders.FlexibleViewHolder;
-
import java.util.List;
public class GenericTextHeaderItem extends AbstractHeaderItem {
diff --git a/presentation/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.java b/presentation/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.java
index 0a89eae1e..59aba15ba 100644
--- a/presentation/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.java
+++ b/presentation/src/main/java/com/nextcloud/talk/adapters/items/MentionAutocompleteItem.java
@@ -22,7 +22,6 @@ package com.nextcloud.talk.adapters.items;
import android.annotation.SuppressLint;
import android.view.View;
-
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.drawee.interfaces.DraweeController;
import com.nextcloud.talk.R;
@@ -30,15 +29,13 @@ import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.models.database.UserEntity;
import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.DisplayUtils;
-
-import java.util.List;
-import java.util.regex.Pattern;
-
import eu.davidea.flexibleadapter.FlexibleAdapter;
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem;
import eu.davidea.flexibleadapter.items.IFilterable;
import eu.davidea.flexibleadapter.items.IFlexible;
import eu.davidea.flexibleadapter.utils.FlexibleUtils;
+import java.util.List;
+import java.util.regex.Pattern;
public class MentionAutocompleteItem extends AbstractFlexibleItem
implements IFilterable {
diff --git a/presentation/src/main/java/com/nextcloud/talk/adapters/items/MenuItem.java b/presentation/src/main/java/com/nextcloud/talk/adapters/items/MenuItem.java
index 33f335bd2..120bae1db 100644
--- a/presentation/src/main/java/com/nextcloud/talk/adapters/items/MenuItem.java
+++ b/presentation/src/main/java/com/nextcloud/talk/adapters/items/MenuItem.java
@@ -22,7 +22,6 @@
package com.nextcloud.talk.adapters.items;
-
import android.graphics.drawable.Drawable;
import android.text.Spannable;
import android.text.SpannableString;
@@ -37,7 +36,6 @@ import com.nextcloud.talk.utils.DisplayUtils;
import eu.davidea.flexibleadapter.FlexibleAdapter;
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem;
import eu.davidea.viewholders.FlexibleViewHolder;
-
import java.util.List;
public class MenuItem extends AbstractFlexibleItem {
diff --git a/presentation/src/main/java/com/nextcloud/talk/adapters/items/NotificationSoundItem.java b/presentation/src/main/java/com/nextcloud/talk/adapters/items/NotificationSoundItem.java
index ffa33fbcc..e950c00af 100644
--- a/presentation/src/main/java/com/nextcloud/talk/adapters/items/NotificationSoundItem.java
+++ b/presentation/src/main/java/com/nextcloud/talk/adapters/items/NotificationSoundItem.java
@@ -34,7 +34,6 @@ import eu.davidea.flexibleadapter.FlexibleAdapter;
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem;
import eu.davidea.flexibleadapter.items.IFlexible;
import eu.davidea.viewholders.FlexibleViewHolder;
-
import java.util.List;
public class NotificationSoundItem extends AbstractFlexibleItem {
diff --git a/presentation/src/main/java/com/nextcloud/talk/adapters/items/ProgressItem.java b/presentation/src/main/java/com/nextcloud/talk/adapters/items/ProgressItem.java
index 14e5e74ef..83d889a83 100644
--- a/presentation/src/main/java/com/nextcloud/talk/adapters/items/ProgressItem.java
+++ b/presentation/src/main/java/com/nextcloud/talk/adapters/items/ProgressItem.java
@@ -39,7 +39,6 @@ import eu.davidea.flexibleadapter.helpers.AnimatorHelper;
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem;
import eu.davidea.flexibleadapter.items.IFlexible;
import eu.davidea.viewholders.FlexibleViewHolder;
-
import java.util.List;
/**
diff --git a/presentation/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java b/presentation/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java
index 0a829a032..ded66e5a8 100644
--- a/presentation/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java
+++ b/presentation/src/main/java/com/nextcloud/talk/adapters/items/UserItem.java
@@ -25,32 +25,28 @@ import android.graphics.drawable.BitmapDrawable;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
-
+import androidx.emoji.widget.EmojiTextView;
+import butterknife.BindView;
+import butterknife.ButterKnife;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.drawee.interfaces.DraweeController;
import com.facebook.drawee.view.SimpleDraweeView;
import com.nextcloud.talk.R;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.data.models.json.converters.EnumParticipantTypeConverter;
-import com.nextcloud.data.models.json.participants.Participant;
+import com.nextcloud.talk.models.json.converters.EnumParticipantTypeConverter;
+import com.nextcloud.talk.models.json.participants.Participant;
import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.DisplayUtils;
-
-import java.util.List;
-import java.util.regex.Pattern;
-
-import javax.annotation.Nullable;
-
-import androidx.emoji.widget.EmojiTextView;
-import butterknife.BindView;
-import butterknife.ButterKnife;
import eu.davidea.flexibleadapter.FlexibleAdapter;
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem;
import eu.davidea.flexibleadapter.items.IFilterable;
import eu.davidea.flexibleadapter.items.ISectionable;
import eu.davidea.flexibleadapter.utils.FlexibleUtils;
import eu.davidea.viewholders.FlexibleViewHolder;
+import java.util.List;
+import java.util.regex.Pattern;
+import javax.annotation.Nullable;
public class UserItem extends AbstractFlexibleItem implements
ISectionable, IFilterable {
diff --git a/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.java b/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.java
index ec8edc80d..1fd945e7a 100644
--- a/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.java
+++ b/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicIncomingTextMessageViewHolder.java
@@ -34,7 +34,6 @@ import android.view.View;
import android.widget.TextView;
import androidx.core.view.ViewCompat;
import androidx.emoji.widget.EmojiTextView;
-
import autodagger.AutoInjector;
import butterknife.BindView;
import butterknife.ButterKnife;
@@ -49,10 +48,9 @@ import com.nextcloud.talk.utils.TextMatchers;
import com.nextcloud.talk.utils.database.user.UserUtils;
import com.nextcloud.talk.utils.preferences.AppPreferences;
import com.stfalcon.chatkit.messages.MessageHolders;
-
-import javax.inject.Inject;
import java.util.HashMap;
import java.util.Map;
+import javax.inject.Inject;
@AutoInjector(NextcloudTalkApplication.class)
public class MagicIncomingTextMessageViewHolder
@@ -135,7 +133,7 @@ public class MagicIncomingTextMessageViewHolder
int bubbleResource = R.drawable.shape_incoming_message;
- if (message.getIsGrouped()) {
+ if (message.isGrouped) {
bubbleResource = R.drawable.shape_grouped_incoming_message;
}
diff --git a/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.java b/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.java
index ab543ff33..3c3abd881 100644
--- a/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.java
+++ b/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicOutcomingTextMessageViewHolder.java
@@ -32,7 +32,6 @@ import android.view.View;
import android.widget.TextView;
import androidx.core.view.ViewCompat;
import androidx.emoji.widget.EmojiTextView;
-
import autodagger.AutoInjector;
import butterknife.BindView;
import butterknife.ButterKnife;
@@ -44,10 +43,9 @@ import com.nextcloud.talk.utils.DisplayUtils;
import com.nextcloud.talk.utils.TextMatchers;
import com.nextcloud.talk.utils.database.user.UserUtils;
import com.stfalcon.chatkit.messages.MessageHolders;
-
-import javax.inject.Inject;
import java.util.HashMap;
import java.util.Map;
+import javax.inject.Inject;
@AutoInjector(NextcloudTalkApplication.class)
public class MagicOutcomingTextMessageViewHolder extends MessageHolders.OutcomingTextMessageViewHolder {
@@ -120,7 +118,7 @@ public class MagicOutcomingTextMessageViewHolder extends MessageHolders.Outcomin
}
Resources resources = NextcloudTalkApplication.Companion.getSharedApplication().getResources();
- if (message.getIsGrouped()) {
+ if (message.isGrouped) {
Drawable bubbleDrawable =
DisplayUtils.getMessageSelector(resources.getColor(R.color.bg_message_list_outcoming_bubble),
resources.getColor(R.color.transparent),
diff --git a/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicPreviewMessageViewHolder.java b/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicPreviewMessageViewHolder.java
index f6b7c4a38..db73a5d95 100644
--- a/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicPreviewMessageViewHolder.java
+++ b/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicPreviewMessageViewHolder.java
@@ -29,9 +29,7 @@ import android.graphics.drawable.LayerDrawable;
import android.net.Uri;
import android.os.Handler;
import android.view.View;
-
import androidx.emoji.widget.EmojiTextView;
-
import autodagger.AutoInjector;
import butterknife.BindView;
import butterknife.ButterKnife;
@@ -51,11 +49,10 @@ import io.reactivex.Single;
import io.reactivex.SingleObserver;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
-import okhttp3.OkHttpClient;
-
-import javax.inject.Inject;
import java.util.List;
import java.util.concurrent.Callable;
+import javax.inject.Inject;
+import okhttp3.OkHttpClient;
@AutoInjector(NextcloudTalkApplication.class)
public class MagicPreviewMessageViewHolder extends MessageHolders.IncomingImageMessageViewHolder {
@@ -80,8 +77,8 @@ public class MagicPreviewMessageViewHolder extends MessageHolders.IncomingImageM
public void onBind(ChatMessage message) {
super.onBind(message);
if (userAvatar != null) {
- if (message.getIsGrouped() || message.isOneToOneConversation()) {
- if (message.isOneToOneConversation()) {
+ if (message.isGrouped || message.isOneToOneConversation) {
+ if (message.isOneToOneConversation) {
userAvatar.setVisibility(View.GONE);
} else {
userAvatar.setVisibility(View.INVISIBLE);
diff --git a/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java b/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java
index 0340e6fd7..e95067bf8 100644
--- a/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java
+++ b/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicSystemMessageViewHolder.java
@@ -27,16 +27,15 @@ import android.text.Spannable;
import android.text.SpannableString;
import android.view.View;
import androidx.core.view.ViewCompat;
+import autodagger.AutoInjector;
import com.nextcloud.talk.R;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.models.json.chat.ChatMessage;
import com.nextcloud.talk.utils.DisplayUtils;
import com.nextcloud.talk.utils.preferences.AppPreferences;
import com.stfalcon.chatkit.messages.MessageHolders;
-
import java.util.Map;
import javax.inject.Inject;
-import autodagger.AutoInjector;
@AutoInjector(NextcloudTalkApplication.class)
public class MagicSystemMessageViewHolder extends MessageHolders.IncomingTextMessageViewHolder {
diff --git a/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicUnreadNoticeMessageViewHolder.java b/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicUnreadNoticeMessageViewHolder.java
index aac615f2c..d5a184d30 100644
--- a/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicUnreadNoticeMessageViewHolder.java
+++ b/presentation/src/main/java/com/nextcloud/talk/adapters/messages/MagicUnreadNoticeMessageViewHolder.java
@@ -21,7 +21,6 @@
package com.nextcloud.talk.adapters.messages;
import android.view.View;
-
import com.nextcloud.talk.models.json.chat.ChatMessage;
import com.stfalcon.chatkit.messages.MessageHolders;
diff --git a/presentation/src/main/java/com/nextcloud/talk/api/NcApi.java b/presentation/src/main/java/com/nextcloud/talk/api/NcApi.java
index d91b9d577..f3f42e4a9 100644
--- a/presentation/src/main/java/com/nextcloud/talk/api/NcApi.java
+++ b/presentation/src/main/java/com/nextcloud/talk/api/NcApi.java
@@ -21,27 +21,36 @@
package com.nextcloud.talk.api;
import androidx.annotation.Nullable;
-import com.nextcloud.data.models.json.capabilities.CapabilitiesOverall;
+import com.nextcloud.talk.models.json.capabilities.CapabilitiesOverall;
import com.nextcloud.talk.models.json.chat.ChatOverall;
-import com.nextcloud.data.models.json.generic.GenericOverall;
-import com.nextcloud.data.models.json.generic.Status;
-import com.nextcloud.data.models.json.mention.MentionOverall;
-import com.nextcloud.data.models.json.notifications.NotificationOverall;
-import com.nextcloud.data.models.json.participants.AddParticipantOverall;
-import com.nextcloud.data.models.json.participants.ParticipantsOverall;
-import com.nextcloud.data.models.json.push.PushRegistrationOverall;
-import com.nextcloud.data.models.json.conversations.RoomOverall;
-import com.nextcloud.data.models.json.conversations.RoomsOverall;
-import com.nextcloud.data.models.json.signaling.SignalingOverall;
-import com.nextcloud.data.models.json.signaling.settings.SignalingSettingsOverall;
-import com.nextcloud.data.models.json.userprofile.UserProfileOverall;
+import com.nextcloud.talk.models.json.conversations.RoomOverall;
+import com.nextcloud.talk.models.json.conversations.RoomsOverall;
+import com.nextcloud.talk.models.json.generic.GenericOverall;
+import com.nextcloud.talk.models.json.generic.Status;
+import com.nextcloud.talk.models.json.mention.MentionOverall;
+import com.nextcloud.talk.models.json.notifications.NotificationOverall;
+import com.nextcloud.talk.models.json.participants.AddParticipantOverall;
+import com.nextcloud.talk.models.json.participants.ParticipantsOverall;
+import com.nextcloud.talk.models.json.push.PushRegistrationOverall;
+import com.nextcloud.talk.models.json.signaling.SignalingOverall;
+import com.nextcloud.talk.models.json.signaling.settings.SignalingSettingsOverall;
+import com.nextcloud.talk.models.json.userprofile.UserProfileOverall;
import io.reactivex.Observable;
-import okhttp3.ResponseBody;
-import retrofit2.Response;
-import retrofit2.http.*;
-
import java.util.List;
import java.util.Map;
+import okhttp3.ResponseBody;
+import retrofit2.Response;
+import retrofit2.http.DELETE;
+import retrofit2.http.Field;
+import retrofit2.http.FieldMap;
+import retrofit2.http.FormUrlEncoded;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.POST;
+import retrofit2.http.PUT;
+import retrofit2.http.Query;
+import retrofit2.http.QueryMap;
+import retrofit2.http.Url;
public interface NcApi {
diff --git a/presentation/src/main/java/com/nextcloud/talk/application/NextcloudTalkApplication.kt b/presentation/src/main/java/com/nextcloud/talk/application/NextcloudTalkApplication.kt
index 188520ba7..6d0f48a1b 100644
--- a/presentation/src/main/java/com/nextcloud/talk/application/NextcloudTalkApplication.kt
+++ b/presentation/src/main/java/com/nextcloud/talk/application/NextcloudTalkApplication.kt
@@ -23,10 +23,9 @@ package com.nextcloud.talk.application
import android.content.Context
import android.os.Build
import android.util.Log
+import androidx.appcompat.app.AppCompatDelegate
import androidx.emoji.bundled.BundledEmojiCompatConfig
import androidx.emoji.text.EmojiCompat
-
-import androidx.appcompat.app.AppCompatDelegate
import androidx.lifecycle.LifecycleObserver
import androidx.multidex.MultiDex
import androidx.multidex.MultiDexApplication
@@ -59,7 +58,6 @@ import com.nextcloud.talk.utils.preferences.AppPreferences
import com.nextcloud.talk.webrtc.MagicWebRTCUtils
import com.vanniktech.emoji.EmojiManager
import com.vanniktech.emoji.googlecompat.GoogleCompatEmojiProvider
-
import de.cotech.hw.SecurityKeyManager
import de.cotech.hw.SecurityKeyManagerConfig
import okhttp3.OkHttpClient
@@ -67,11 +65,10 @@ import org.conscrypt.Conscrypt
import org.webrtc.PeerConnectionFactory
import org.webrtc.voiceengine.WebRtcAudioManager
import org.webrtc.voiceengine.WebRtcAudioUtils
-
-import javax.inject.Inject
-import javax.inject.Singleton
import java.security.Security
import java.util.concurrent.TimeUnit
+import javax.inject.Inject
+import javax.inject.Singleton
@AutoComponent(modules = [BusModule::class, ContextModule::class, DatabaseModule::class, RestModule::class, UserModule::class, ArbitraryStorageModule::class])
@Singleton
diff --git a/presentation/src/main/java/com/nextcloud/talk/callbacks/MentionAutocompleteCallback.java b/presentation/src/main/java/com/nextcloud/talk/callbacks/MentionAutocompleteCallback.java
index 9f32ea1bf..d27e06120 100644
--- a/presentation/src/main/java/com/nextcloud/talk/callbacks/MentionAutocompleteCallback.java
+++ b/presentation/src/main/java/com/nextcloud/talk/callbacks/MentionAutocompleteCallback.java
@@ -24,11 +24,10 @@ import android.content.Context;
import android.text.Editable;
import android.text.Spanned;
import android.widget.EditText;
-
import com.facebook.widget.text.span.BetterImageSpan;
+import com.nextcloud.talk.models.json.mention.Mention;
import com.nextcloud.talk.R;
import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.data.models.json.mention.Mention;
import com.nextcloud.talk.utils.DisplayUtils;
import com.nextcloud.talk.utils.MagicCharPolicy;
import com.nextcloud.talk.utils.text.Spans;
diff --git a/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/adapters/items/BrowserFileItem.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/adapters/items/BrowserFileItem.java
index 4ad6fa10a..8a83fb653 100644
--- a/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/adapters/items/BrowserFileItem.java
+++ b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/adapters/items/BrowserFileItem.java
@@ -46,9 +46,8 @@ import eu.davidea.flexibleadapter.items.AbstractFlexibleItem;
import eu.davidea.flexibleadapter.items.IFilterable;
import eu.davidea.flexibleadapter.items.IFlexible;
import eu.davidea.viewholders.FlexibleViewHolder;
-
-import javax.inject.Inject;
import java.util.List;
+import javax.inject.Inject;
@AutoInjector(NextcloudTalkApplication.class)
public class BrowserFileItem extends AbstractFlexibleItem implements IFilterable {
diff --git a/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/controllers/BrowserController.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/controllers/BrowserController.java
index 765a0ac44..7dc655576 100644
--- a/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/controllers/BrowserController.java
+++ b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/controllers/BrowserController.java
@@ -23,7 +23,12 @@ package com.nextcloud.talk.components.filebrowser.controllers;
import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Bundle;
-import android.view.*;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import androidx.work.Data;
@@ -52,14 +57,18 @@ import eu.davidea.flexibleadapter.FlexibleAdapter;
import eu.davidea.flexibleadapter.common.SmoothScrollLinearLayoutManager;
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem;
import eu.davidea.flexibleadapter.items.IFlexible;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
+import javax.inject.Inject;
import okhttp3.OkHttpClient;
import org.parceler.Parcel;
import org.parceler.Parcels;
-import javax.inject.Inject;
-import java.io.File;
-import java.util.*;
-
@AutoInjector(NextcloudTalkApplication.class)
public class BrowserController extends BaseController implements ListingInterface,
FlexibleAdapter.OnItemClickListener, SelectionInterface {
diff --git a/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/BrowserFile.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/BrowserFile.java
index 5fd0e11c8..9a6963962 100644
--- a/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/BrowserFile.java
+++ b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/BrowserFile.java
@@ -29,12 +29,15 @@ import at.bitfire.dav4android.property.GetContentType;
import at.bitfire.dav4android.property.GetLastModified;
import at.bitfire.dav4android.property.ResourceType;
import com.bluelinelabs.logansquare.annotation.JsonObject;
-import com.nextcloud.talk.components.filebrowser.models.properties.*;
-import lombok.Data;
-import org.parceler.Parcel;
-
+import com.nextcloud.talk.components.filebrowser.models.properties.NCEncrypted;
+import com.nextcloud.talk.components.filebrowser.models.properties.NCPreview;
+import com.nextcloud.talk.components.filebrowser.models.properties.OCFavorite;
+import com.nextcloud.talk.components.filebrowser.models.properties.OCId;
+import com.nextcloud.talk.components.filebrowser.models.properties.OCSize;
import java.io.File;
import java.util.List;
+import lombok.Data;
+import org.parceler.Parcel;
@Data
@JsonObject
diff --git a/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/NCEncrypted.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/NCEncrypted.java
index ee69353fd..d88e12923 100644
--- a/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/NCEncrypted.java
+++ b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/NCEncrypted.java
@@ -25,6 +25,7 @@ import at.bitfire.dav4android.Property;
import at.bitfire.dav4android.PropertyFactory;
import at.bitfire.dav4android.XmlUtils;
import com.nextcloud.talk.components.filebrowser.webdav.DavUtils;
+import java.io.IOException;
import lombok.Getter;
import lombok.Setter;
import org.jetbrains.annotations.NotNull;
@@ -32,8 +33,6 @@ import org.jetbrains.annotations.Nullable;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
-import java.io.IOException;
-
public class NCEncrypted implements Property {
public static final Name NAME = new Name(DavUtils.NC_NAMESPACE, DavUtils.EXTENDED_PROPERTY_IS_ENCRYPTED);
diff --git a/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/NCPreview.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/NCPreview.java
index 2d387d4b7..461ebd6d2 100644
--- a/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/NCPreview.java
+++ b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/NCPreview.java
@@ -25,6 +25,7 @@ import at.bitfire.dav4android.Property;
import at.bitfire.dav4android.PropertyFactory;
import at.bitfire.dav4android.XmlUtils;
import com.nextcloud.talk.components.filebrowser.webdav.DavUtils;
+import java.io.IOException;
import lombok.Getter;
import lombok.Setter;
import org.jetbrains.annotations.NotNull;
@@ -32,8 +33,6 @@ import org.jetbrains.annotations.Nullable;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
-import java.io.IOException;
-
public class NCPreview implements Property {
public static final Property.Name NAME = new Property.Name(DavUtils.NC_NAMESPACE, DavUtils.EXTENDED_PROPERTY_HAS_PREVIEW);
diff --git a/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCFavorite.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCFavorite.java
index d1d34fa28..b182c88bc 100644
--- a/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCFavorite.java
+++ b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCFavorite.java
@@ -25,6 +25,7 @@ import at.bitfire.dav4android.Property;
import at.bitfire.dav4android.PropertyFactory;
import at.bitfire.dav4android.XmlUtils;
import com.nextcloud.talk.components.filebrowser.webdav.DavUtils;
+import java.io.IOException;
import lombok.Getter;
import lombok.Setter;
import org.jetbrains.annotations.NotNull;
@@ -32,8 +33,6 @@ import org.jetbrains.annotations.Nullable;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
-import java.io.IOException;
-
public class OCFavorite implements Property {
public static final Property.Name NAME = new Property.Name(DavUtils.OC_NAMESPACE, DavUtils.EXTENDED_PROPERTY_FAVORITE);
diff --git a/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCId.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCId.java
index ca5b69b37..60dc773ea 100644
--- a/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCId.java
+++ b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCId.java
@@ -25,6 +25,7 @@ import at.bitfire.dav4android.Property;
import at.bitfire.dav4android.PropertyFactory;
import at.bitfire.dav4android.XmlUtils;
import com.nextcloud.talk.components.filebrowser.webdav.DavUtils;
+import java.io.IOException;
import lombok.Getter;
import lombok.Setter;
import org.jetbrains.annotations.NotNull;
@@ -32,8 +33,6 @@ import org.jetbrains.annotations.Nullable;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
-import java.io.IOException;
-
public class OCId implements Property {
public static final Name NAME = new Name(DavUtils.OC_NAMESPACE, DavUtils.EXTENDED_PROPERTY_NAME_REMOTE_ID);
diff --git a/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCSize.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCSize.java
index 26b5e4dd4..13b9e3224 100644
--- a/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCSize.java
+++ b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/models/properties/OCSize.java
@@ -25,6 +25,7 @@ import at.bitfire.dav4android.Property;
import at.bitfire.dav4android.PropertyFactory;
import at.bitfire.dav4android.XmlUtils;
import com.nextcloud.talk.components.filebrowser.webdav.DavUtils;
+import java.io.IOException;
import lombok.Getter;
import lombok.Setter;
import org.jetbrains.annotations.NotNull;
@@ -32,8 +33,6 @@ import org.jetbrains.annotations.Nullable;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
-import java.io.IOException;
-
public class OCSize implements Property {
public static final Property.Name NAME = new Property.Name(DavUtils.OC_NAMESPACE, DavUtils.EXTENDED_PROPERTY_NAME_SIZE);
diff --git a/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/operations/DavListing.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/operations/DavListing.java
index 38399344c..1d43d4d78 100644
--- a/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/operations/DavListing.java
+++ b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/operations/DavListing.java
@@ -29,9 +29,8 @@ import io.reactivex.Single;
import io.reactivex.SingleObserver;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
-import okhttp3.OkHttpClient;
-
import java.util.concurrent.Callable;
+import okhttp3.OkHttpClient;
public class DavListing extends ListingAbstractClass {
private DavResponse davResponse = new DavResponse();
diff --git a/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/webdav/DavUtils.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/webdav/DavUtils.java
index 579f726be..d0528bd53 100644
--- a/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/webdav/DavUtils.java
+++ b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/webdav/DavUtils.java
@@ -23,9 +23,18 @@ package com.nextcloud.talk.components.filebrowser.webdav;
import at.bitfire.dav4android.Property;
import at.bitfire.dav4android.PropertyFactory;
import at.bitfire.dav4android.PropertyRegistry;
-import at.bitfire.dav4android.property.*;
-import com.nextcloud.talk.components.filebrowser.models.properties.*;
-
+import at.bitfire.dav4android.property.CreationDate;
+import at.bitfire.dav4android.property.DisplayName;
+import at.bitfire.dav4android.property.GetContentLength;
+import at.bitfire.dav4android.property.GetContentType;
+import at.bitfire.dav4android.property.GetETag;
+import at.bitfire.dav4android.property.GetLastModified;
+import at.bitfire.dav4android.property.ResourceType;
+import com.nextcloud.talk.components.filebrowser.models.properties.NCEncrypted;
+import com.nextcloud.talk.components.filebrowser.models.properties.NCPreview;
+import com.nextcloud.talk.components.filebrowser.models.properties.OCFavorite;
+import com.nextcloud.talk.components.filebrowser.models.properties.OCId;
+import com.nextcloud.talk.components.filebrowser.models.properties.OCSize;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
diff --git a/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/webdav/ReadFilesystemOperation.java b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/webdav/ReadFilesystemOperation.java
index 19ff8f58f..55eefa03b 100644
--- a/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/webdav/ReadFilesystemOperation.java
+++ b/presentation/src/main/java/com/nextcloud/talk/components/filebrowser/webdav/ReadFilesystemOperation.java
@@ -28,15 +28,14 @@ import com.nextcloud.talk.components.filebrowser.models.DavResponse;
import com.nextcloud.talk.dagger.modules.RestModule;
import com.nextcloud.talk.models.database.UserEntity;
import com.nextcloud.talk.utils.ApiUtils;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
import kotlin.Unit;
import kotlin.jvm.functions.Function2;
import okhttp3.HttpUrl;
import okhttp3.OkHttpClient;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
public class ReadFilesystemOperation {
private final OkHttpClient okHttpClient;
private final String url;
diff --git a/presentation/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.java
index 65295a837..22c77de8d 100644
--- a/presentation/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.java
+++ b/presentation/src/main/java/com/nextcloud/talk/controllers/AccountVerificationController.java
@@ -36,6 +36,9 @@ import autodagger.AutoInjector;
import butterknife.BindView;
import com.bluelinelabs.conductor.RouterTransaction;
import com.bluelinelabs.conductor.changehandler.HorizontalChangeHandler;
+import com.nextcloud.talk.models.json.conversations.RoomsOverall;
+import com.nextcloud.talk.models.json.generic.Status;
+import com.nextcloud.talk.models.json.userprofile.UserProfileOverall;
import com.nextcloud.talk.R;
import com.nextcloud.talk.api.NcApi;
import com.nextcloud.talk.application.NextcloudTalkApplication;
@@ -45,9 +48,6 @@ import com.nextcloud.talk.jobs.CapabilitiesWorker;
import com.nextcloud.talk.jobs.PushRegistrationWorker;
import com.nextcloud.talk.jobs.SignalingSettingsWorker;
import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.data.models.json.generic.Status;
-import com.nextcloud.data.models.json.conversations.RoomsOverall;
-import com.nextcloud.data.models.json.userprofile.UserProfileOverall;
import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.ClosedInterfaceImpl;
import com.nextcloud.talk.utils.bundle.BundleKeys;
@@ -55,19 +55,17 @@ import com.nextcloud.talk.utils.database.user.UserUtils;
import com.nextcloud.talk.utils.preferences.AppPreferences;
import com.nextcloud.talk.utils.singletons.ApplicationWideMessageHolder;
import com.uber.autodispose.AutoDispose;
-
import io.reactivex.CompletableObserver;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
+import java.net.CookieManager;
+import javax.inject.Inject;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
-import javax.inject.Inject;
-import java.net.CookieManager;
-
@AutoInjector(NextcloudTalkApplication.class)
public class AccountVerificationController extends BaseController {
diff --git a/presentation/src/main/java/com/nextcloud/talk/controllers/CallController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/CallController.java
index 5d6a61778..e63c8fed4 100644
--- a/presentation/src/main/java/com/nextcloud/talk/controllers/CallController.java
+++ b/presentation/src/main/java/com/nextcloud/talk/controllers/CallController.java
@@ -39,7 +39,12 @@ import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.*;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.ProgressBar;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
@@ -51,23 +56,28 @@ import com.bluelinelabs.logansquare.LoganSquare;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.drawee.interfaces.DraweeController;
import com.facebook.drawee.view.SimpleDraweeView;
+import com.nextcloud.talk.models.ExternalSignalingServer;
+import com.nextcloud.talk.models.json.capabilities.CapabilitiesOverall;
+import com.nextcloud.talk.models.json.conversations.Conversation;
+import com.nextcloud.talk.models.json.conversations.RoomOverall;
+import com.nextcloud.talk.models.json.conversations.RoomsOverall;
+import com.nextcloud.talk.models.json.generic.GenericOverall;
+import com.nextcloud.talk.models.json.participants.Participant;
+import com.nextcloud.talk.models.json.participants.ParticipantsOverall;
+import com.nextcloud.talk.models.json.signaling.*;
+import com.nextcloud.talk.models.json.signaling.settings.IceServer;
+import com.nextcloud.talk.models.json.signaling.settings.SignalingSettingsOverall;
import com.nextcloud.talk.R;
import com.nextcloud.talk.api.NcApi;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.controllers.base.BaseController;
-import com.nextcloud.talk.events.*;
-import com.nextcloud.data.models.ExternalSignalingServer;
+import com.nextcloud.talk.events.ConfigurationChangeEvent;
+import com.nextcloud.talk.events.MediaStreamEvent;
+import com.nextcloud.talk.events.NetworkEvent;
+import com.nextcloud.talk.events.PeerConnectionEvent;
+import com.nextcloud.talk.events.SessionDescriptionSendEvent;
+import com.nextcloud.talk.events.WebSocketCommunicationEvent;
import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.data.models.json.capabilities.CapabilitiesOverall;
-import com.nextcloud.data.models.json.conversations.RoomOverall;
-import com.nextcloud.data.models.json.generic.GenericOverall;
-import com.nextcloud.data.models.json.participants.Participant;
-import com.nextcloud.data.models.json.participants.ParticipantsOverall;
-import com.nextcloud.data.models.json.conversations.Conversation;
-import com.nextcloud.data.models.json.conversations.RoomsOverall;
-import com.nextcloud.data.models.json.signaling.*;
-import com.nextcloud.data.models.json.signaling.settings.IceServer;
-import com.nextcloud.data.models.json.signaling.settings.SignalingSettingsOverall;
import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.DisplayUtils;
import com.nextcloud.talk.utils.NotificationUtils;
@@ -77,13 +87,27 @@ import com.nextcloud.talk.utils.database.user.UserUtils;
import com.nextcloud.talk.utils.power.PowerManagerUtils;
import com.nextcloud.talk.utils.preferences.AppPreferences;
import com.nextcloud.talk.utils.singletons.ApplicationWideCurrentRoomHolder;
-import com.nextcloud.talk.webrtc.*;
+import com.nextcloud.talk.webrtc.MagicAudioManager;
+import com.nextcloud.talk.webrtc.MagicPeerConnectionWrapper;
+import com.nextcloud.talk.webrtc.MagicWebRTCUtils;
+import com.nextcloud.talk.webrtc.MagicWebSocketInstance;
+import com.nextcloud.talk.webrtc.WebSocketConnectionHelper;
import com.wooplr.spotlight.SpotlightView;
import io.reactivex.Observable;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+import javax.inject.Inject;
import me.zhanghai.android.effortlesspermissions.AfterPermissionDenied;
import me.zhanghai.android.effortlesspermissions.EffortlessPermissions;
import me.zhanghai.android.effortlesspermissions.OpenAppDetailsDialogFragment;
@@ -93,14 +117,27 @@ import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import org.parceler.Parcel;
-import org.webrtc.*;
+import org.webrtc.AudioSource;
+import org.webrtc.AudioTrack;
+import org.webrtc.Camera1Enumerator;
+import org.webrtc.Camera2Enumerator;
+import org.webrtc.CameraEnumerator;
+import org.webrtc.CameraVideoCapturer;
+import org.webrtc.EglBase;
+import org.webrtc.IceCandidate;
+import org.webrtc.Logging;
+import org.webrtc.MediaConstraints;
+import org.webrtc.MediaStream;
+import org.webrtc.PeerConnection;
+import org.webrtc.PeerConnectionFactory;
+import org.webrtc.RendererCommon;
+import org.webrtc.SessionDescription;
+import org.webrtc.SurfaceViewRenderer;
+import org.webrtc.VideoCapturer;
+import org.webrtc.VideoSource;
+import org.webrtc.VideoTrack;
import pub.devrel.easypermissions.AfterPermissionGranted;
-import javax.inject.Inject;
-import java.io.IOException;
-import java.util.*;
-import java.util.concurrent.TimeUnit;
-
@AutoInjector(NextcloudTalkApplication.class)
public class CallController extends BaseController {
diff --git a/presentation/src/main/java/com/nextcloud/talk/controllers/CallNotificationController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/CallNotificationController.java
index 2b15f52d4..78d0e440b 100644
--- a/presentation/src/main/java/com/nextcloud/talk/controllers/CallNotificationController.java
+++ b/presentation/src/main/java/com/nextcloud/talk/controllers/CallNotificationController.java
@@ -29,7 +29,11 @@ import android.graphics.drawable.ColorDrawable;
import android.media.AudioAttributes;
import android.media.MediaPlayer;
import android.net.Uri;
-import android.os.*;
+import android.os.Build;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.VibrationEffect;
+import android.os.Vibrator;
import android.renderscript.RenderScript;
import android.text.TextUtils;
import android.util.Log;
@@ -57,17 +61,17 @@ import com.facebook.imagepipeline.datasource.BaseBitmapDataSubscriber;
import com.facebook.imagepipeline.image.CloseableImage;
import com.facebook.imagepipeline.postprocessors.BlurPostProcessor;
import com.facebook.imagepipeline.request.ImageRequest;
+import com.nextcloud.talk.models.RingtoneSettings;
+import com.nextcloud.talk.models.json.conversations.Conversation;
+import com.nextcloud.talk.models.json.conversations.RoomsOverall;
+import com.nextcloud.talk.models.json.participants.Participant;
+import com.nextcloud.talk.models.json.participants.ParticipantsOverall;
import com.nextcloud.talk.R;
import com.nextcloud.talk.api.NcApi;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.controllers.base.BaseController;
import com.nextcloud.talk.events.ConfigurationChangeEvent;
-import com.nextcloud.data.models.RingtoneSettings;
import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.data.models.json.participants.Participant;
-import com.nextcloud.data.models.json.participants.ParticipantsOverall;
-import com.nextcloud.data.models.json.conversations.Conversation;
-import com.nextcloud.data.models.json.conversations.RoomsOverall;
import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.DisplayUtils;
import com.nextcloud.talk.utils.DoNotDisturbUtils;
@@ -75,11 +79,14 @@ import com.nextcloud.talk.utils.bundle.BundleKeys;
import com.nextcloud.talk.utils.preferences.AppPreferences;
import com.nextcloud.talk.utils.singletons.AvatarStatusCodeHolder;
import com.uber.autodispose.AutoDispose;
-
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
+import java.io.IOException;
+import java.util.List;
+import javax.annotation.Nullable;
+import javax.inject.Inject;
import okhttp3.Cache;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@@ -87,11 +94,6 @@ import org.greenrobot.eventbus.ThreadMode;
import org.michaelevans.colorart.library.ColorArt;
import org.parceler.Parcels;
-import javax.annotation.Nullable;
-import javax.inject.Inject;
-import java.io.IOException;
-import java.util.List;
-
@AutoInjector(NextcloudTalkApplication.class)
public class CallNotificationController extends BaseController {
diff --git a/presentation/src/main/java/com/nextcloud/talk/controllers/ChatController.kt b/presentation/src/main/java/com/nextcloud/talk/controllers/ChatController.kt
index 3ce27ac39..62f09b3af 100644
--- a/presentation/src/main/java/com/nextcloud/talk/controllers/ChatController.kt
+++ b/presentation/src/main/java/com/nextcloud/talk/controllers/ChatController.kt
@@ -35,8 +35,17 @@ import android.text.InputFilter
import android.text.TextUtils
import android.text.TextWatcher
import android.util.Log
-import android.view.*
-import android.widget.*
+import android.view.LayoutInflater
+import android.view.Menu
+import android.view.MenuInflater
+import android.view.MenuItem
+import android.view.View
+import android.view.ViewGroup
+import android.widget.AbsListView
+import android.widget.ImageButton
+import android.widget.ProgressBar
+import android.widget.RelativeLayout
+import android.widget.TextView
import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory
import androidx.emoji.text.EmojiCompat
import androidx.emoji.widget.EmojiEditText
@@ -54,9 +63,18 @@ import com.facebook.datasource.DataSource
import com.facebook.drawee.backends.pipeline.Fresco
import com.facebook.imagepipeline.datasource.BaseBitmapDataSubscriber
import com.facebook.imagepipeline.image.CloseableImage
+import com.nextcloud.talk.models.json.conversations.Conversation
+import com.nextcloud.talk.models.json.conversations.RoomOverall
+import com.nextcloud.talk.models.json.conversations.RoomsOverall
+import com.nextcloud.talk.models.json.generic.GenericOverall
+import com.nextcloud.talk.models.json.mention.Mention
import com.nextcloud.talk.R
import com.nextcloud.talk.activities.MagicCallActivity
-import com.nextcloud.talk.adapters.messages.*
+import com.nextcloud.talk.adapters.messages.MagicIncomingTextMessageViewHolder
+import com.nextcloud.talk.adapters.messages.MagicOutcomingTextMessageViewHolder
+import com.nextcloud.talk.adapters.messages.MagicPreviewMessageViewHolder
+import com.nextcloud.talk.adapters.messages.MagicSystemMessageViewHolder
+import com.nextcloud.talk.adapters.messages.MagicUnreadNoticeMessageViewHolder
import com.nextcloud.talk.api.NcApi
import com.nextcloud.talk.application.NextcloudTalkApplication
import com.nextcloud.talk.callbacks.MentionAutocompleteCallback
@@ -67,13 +85,14 @@ import com.nextcloud.talk.events.WebSocketCommunicationEvent
import com.nextcloud.talk.models.database.UserEntity
import com.nextcloud.talk.models.json.chat.ChatMessage
import com.nextcloud.talk.models.json.chat.ChatOverall
-import com.nextcloud.data.models.json.conversations.Conversation
-import com.nextcloud.data.models.json.conversations.RoomOverall
-import com.nextcloud.data.models.json.conversations.RoomsOverall
-import com.nextcloud.data.models.json.generic.GenericOverall
-import com.nextcloud.data.models.json.mention.Mention
import com.nextcloud.talk.presenters.MentionAutocompletePresenter
-import com.nextcloud.talk.utils.*
+import com.nextcloud.talk.utils.ApiUtils
+import com.nextcloud.talk.utils.ConductorRemapping
+import com.nextcloud.talk.utils.DateUtils
+import com.nextcloud.talk.utils.DisplayUtils
+import com.nextcloud.talk.utils.KeyboardUtils
+import com.nextcloud.talk.utils.MagicCharPolicy
+import com.nextcloud.talk.utils.NotificationUtils
import com.nextcloud.talk.utils.bundle.BundleKeys
import com.nextcloud.talk.utils.database.user.UserUtils
import com.nextcloud.talk.utils.preferences.AppPreferences
@@ -102,7 +121,9 @@ import org.greenrobot.eventbus.ThreadMode
import org.parceler.Parcels
import retrofit2.HttpException
import retrofit2.Response
-import java.util.*
+import java.util.Date
+import java.util.HashMap
+import java.util.Objects
import java.util.concurrent.TimeUnit
import javax.inject.Inject
@@ -202,7 +223,7 @@ class ChatController(args: Bundle) : BaseController(), MessagesListAdapter
if (conversationUser?.userId == "?") {
credentials = null
} else {
- credentials = ApiUtils.getCredentials(conversationUser.username, conversationUser.token)
+ credentials = ApiUtils.getCredentials(conversationUser?.username, conversationUser?.token)
}
if (args.containsKey(BundleKeys.KEY_FROM_NOTIFICATION_START_CALL)) {
@@ -765,7 +786,6 @@ class ChatController(args: Bundle) : BaseController(), MessagesListAdapter
roomToken))
?.subscribeOn(Schedulers.io())
?.observeOn(AndroidSchedulers.mainThread())
- ?.`as`(AutoDispose.autoDisposable(scopeProvider))
?.subscribe(object : Observer {
override fun onSubscribe(d: Disposable) {
}
@@ -1238,7 +1258,7 @@ class ChatController(args: Bundle) : BaseController(), MessagesListAdapter
val clipboardManager = activity?.getSystemService(Context.CLIPBOARD_SERVICE) as android.content.ClipboardManager
val clipData = android.content.ClipData.newPlainText(
resources?.getString(R.string.nc_app_name), message.text)
- clipboardManager.primaryClip = clipData
+ clipboardManager.setPrimaryClip(clipData)
}
}
diff --git a/presentation/src/main/java/com/nextcloud/talk/controllers/ContactsController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/ContactsController.java
index 6544463e3..7dbf976d2 100644
--- a/presentation/src/main/java/com/nextcloud/talk/controllers/ContactsController.java
+++ b/presentation/src/main/java/com/nextcloud/talk/controllers/ContactsController.java
@@ -38,55 +38,6 @@ import android.view.ViewGroup;
import android.view.inputmethod.EditorInfo;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
-
-import com.bluelinelabs.conductor.RouterTransaction;
-import com.bluelinelabs.conductor.changehandler.VerticalChangeHandler;
-import com.bluelinelabs.logansquare.LoganSquare;
-import com.kennyc.bottomsheet.BottomSheet;
-import com.nextcloud.talk.R;
-import com.nextcloud.talk.activities.MagicCallActivity;
-import com.nextcloud.talk.adapters.items.GenericTextHeaderItem;
-import com.nextcloud.talk.adapters.items.ProgressItem;
-import com.nextcloud.talk.adapters.items.UserItem;
-import com.nextcloud.talk.api.NcApi;
-import com.nextcloud.talk.application.NextcloudTalkApplication;
-import com.nextcloud.talk.controllers.base.BaseController;
-import com.nextcloud.talk.controllers.bottomsheet.EntryMenuController;
-import com.nextcloud.talk.controllers.bottomsheet.OperationsMenuController;
-import com.nextcloud.talk.events.BottomSheetLockEvent;
-import com.nextcloud.talk.jobs.AddParticipantsToConversation;
-import com.nextcloud.data.models.RetrofitBucket;
-import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.data.models.json.autocomplete.AutocompleteOverall;
-import com.nextcloud.data.models.json.autocomplete.AutocompleteUser;
-import com.nextcloud.data.models.json.conversations.Conversation;
-import com.nextcloud.data.models.json.conversations.RoomOverall;
-import com.nextcloud.data.models.json.participants.Participant;
-import com.nextcloud.data.models.json.sharees.Sharee;
-import com.nextcloud.data.models.json.sharees.ShareesOverall;
-import com.nextcloud.talk.utils.ApiUtils;
-import com.nextcloud.talk.utils.ConductorRemapping;
-import com.nextcloud.talk.utils.KeyboardUtils;
-import com.nextcloud.talk.utils.bundle.BundleKeys;
-import com.nextcloud.talk.utils.database.user.UserUtils;
-import com.nextcloud.talk.utils.preferences.AppPreferences;
-import com.uber.autodispose.AutoDispose;
-
-import org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
-import org.greenrobot.eventbus.ThreadMode;
-import org.parceler.Parcels;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.inject.Inject;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.SearchView;
@@ -101,6 +52,38 @@ import autodagger.AutoInjector;
import butterknife.BindView;
import butterknife.OnClick;
import butterknife.Optional;
+import com.bluelinelabs.conductor.RouterTransaction;
+import com.bluelinelabs.conductor.changehandler.VerticalChangeHandler;
+import com.bluelinelabs.logansquare.LoganSquare;
+import com.kennyc.bottomsheet.BottomSheet;
+import com.nextcloud.talk.models.RetrofitBucket;
+import com.nextcloud.talk.models.json.autocomplete.AutocompleteOverall;
+import com.nextcloud.talk.models.json.autocomplete.AutocompleteUser;
+import com.nextcloud.talk.models.json.conversations.Conversation;
+import com.nextcloud.talk.models.json.conversations.RoomOverall;
+import com.nextcloud.talk.models.json.participants.Participant;
+import com.nextcloud.talk.models.json.sharees.Sharee;
+import com.nextcloud.talk.models.json.sharees.ShareesOverall;
+import com.nextcloud.talk.R;
+import com.nextcloud.talk.activities.MagicCallActivity;
+import com.nextcloud.talk.adapters.items.GenericTextHeaderItem;
+import com.nextcloud.talk.adapters.items.ProgressItem;
+import com.nextcloud.talk.adapters.items.UserItem;
+import com.nextcloud.talk.api.NcApi;
+import com.nextcloud.talk.application.NextcloudTalkApplication;
+import com.nextcloud.talk.controllers.base.BaseController;
+import com.nextcloud.talk.controllers.bottomsheet.EntryMenuController;
+import com.nextcloud.talk.controllers.bottomsheet.OperationsMenuController;
+import com.nextcloud.talk.events.BottomSheetLockEvent;
+import com.nextcloud.talk.jobs.AddParticipantsToConversation;
+import com.nextcloud.talk.models.database.UserEntity;
+import com.nextcloud.talk.utils.ApiUtils;
+import com.nextcloud.talk.utils.ConductorRemapping;
+import com.nextcloud.talk.utils.KeyboardUtils;
+import com.nextcloud.talk.utils.bundle.BundleKeys;
+import com.nextcloud.talk.utils.database.user.UserUtils;
+import com.nextcloud.talk.utils.preferences.AppPreferences;
+import com.uber.autodispose.AutoDispose;
import eu.davidea.fastscroller.FastScroller;
import eu.davidea.flexibleadapter.FlexibleAdapter;
import eu.davidea.flexibleadapter.SelectableAdapter;
@@ -111,7 +94,19 @@ import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import javax.inject.Inject;
import okhttp3.ResponseBody;
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+import org.parceler.Parcels;
@AutoInjector(NextcloudTalkApplication.class)
public class ContactsController extends BaseController implements SearchView.OnQueryTextListener,
diff --git a/presentation/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.kt b/presentation/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.kt
index edbaa873e..d06dd559f 100644
--- a/presentation/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.kt
+++ b/presentation/src/main/java/com/nextcloud/talk/controllers/ConversationInfoController.kt
@@ -48,6 +48,12 @@ import com.bluelinelabs.conductor.RouterTransaction
import com.bluelinelabs.conductor.changehandler.HorizontalChangeHandler
import com.facebook.drawee.backends.pipeline.Fresco
import com.facebook.drawee.view.SimpleDraweeView
+import com.nextcloud.talk.models.json.conversations.Conversation
+import com.nextcloud.talk.models.json.conversations.RoomOverall
+import com.nextcloud.talk.models.json.converters.EnumNotificationLevelConverter
+import com.nextcloud.talk.models.json.generic.GenericOverall
+import com.nextcloud.talk.models.json.participants.Participant
+import com.nextcloud.talk.models.json.participants.ParticipantsOverall
import com.nextcloud.talk.R
import com.nextcloud.talk.adapters.items.UserItem
import com.nextcloud.talk.api.NcApi
@@ -59,12 +65,6 @@ import com.nextcloud.talk.events.EventStatus
import com.nextcloud.talk.jobs.DeleteConversationWorker
import com.nextcloud.talk.jobs.LeaveConversationWorker
import com.nextcloud.talk.models.database.UserEntity
-import com.nextcloud.data.models.json.conversations.Conversation
-import com.nextcloud.data.models.json.conversations.RoomOverall
-import com.nextcloud.data.models.json.converters.EnumNotificationLevelConverter
-import com.nextcloud.data.models.json.generic.GenericOverall
-import com.nextcloud.data.models.json.participants.Participant
-import com.nextcloud.data.models.json.participants.ParticipantsOverall
import com.nextcloud.talk.utils.ApiUtils
import com.nextcloud.talk.utils.DateUtils
import com.nextcloud.talk.utils.DisplayUtils
@@ -73,7 +73,11 @@ import com.nextcloud.talk.utils.preferences.preferencestorage.DatabaseStorageMod
import com.nextcloud.talk.utils.ui.MaterialPreferenceCategoryWithRightLink
import com.yarolegovich.lovelydialog.LovelySaveStateHandler
import com.yarolegovich.lovelydialog.LovelyStandardDialog
-import com.yarolegovich.mp.*
+import com.yarolegovich.mp.MaterialChoicePreference
+import com.yarolegovich.mp.MaterialPreferenceCategory
+import com.yarolegovich.mp.MaterialPreferenceScreen
+import com.yarolegovich.mp.MaterialStandardPreference
+import com.yarolegovich.mp.MaterialSwitchPreference
import eu.davidea.flexibleadapter.FlexibleAdapter
import eu.davidea.flexibleadapter.common.SmoothScrollLinearLayoutManager
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem
@@ -84,10 +88,10 @@ import io.reactivex.schedulers.Schedulers
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
-import java.util.*
+import java.util.ArrayList
+import java.util.Calendar
import javax.inject.Inject
-
@AutoInjector(NextcloudTalkApplication::class)
class ConversationInfoController(args: Bundle) : BaseController(), FlexibleAdapter.OnItemClickListener {
diff --git a/presentation/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java
index 47963886a..e6887ee91 100644
--- a/presentation/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java
+++ b/presentation/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java
@@ -38,7 +38,6 @@ import android.view.ViewGroup;
import android.view.inputmethod.EditorInfo;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
-
import androidx.annotation.NonNull;
import androidx.appcompat.widget.SearchView;
import androidx.core.graphics.drawable.RoundedBitmapDrawable;
@@ -49,7 +48,8 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import androidx.work.Data;
import androidx.work.OneTimeWorkRequest;
import androidx.work.WorkManager;
-
+import autodagger.AutoInjector;
+import butterknife.BindView;
import com.bluelinelabs.conductor.RouterTransaction;
import com.bluelinelabs.conductor.changehandler.HorizontalChangeHandler;
import com.bluelinelabs.conductor.changehandler.TransitionChangeHandlerCompat;
@@ -65,6 +65,8 @@ import com.facebook.imagepipeline.image.CloseableImage;
import com.facebook.imagepipeline.request.ImageRequest;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.kennyc.bottomsheet.BottomSheet;
+import com.nextcloud.talk.models.json.conversations.Conversation;
+import com.nextcloud.talk.models.json.participants.Participant;
import com.nextcloud.talk.R;
import com.nextcloud.talk.activities.MagicCallActivity;
import com.nextcloud.talk.adapters.items.CallItem;
@@ -80,8 +82,6 @@ import com.nextcloud.talk.events.MoreMenuClickEvent;
import com.nextcloud.talk.interfaces.ConversationMenuInterface;
import com.nextcloud.talk.jobs.DeleteConversationWorker;
import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.data.models.json.conversations.Conversation;
-import com.nextcloud.data.models.json.participants.Participant;
import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.ConductorRemapping;
import com.nextcloud.talk.utils.DisplayUtils;
@@ -93,27 +93,21 @@ import com.nextcloud.talk.utils.preferences.AppPreferences;
import com.uber.autodispose.AutoDispose;
import com.yarolegovich.lovelydialog.LovelySaveStateHandler;
import com.yarolegovich.lovelydialog.LovelyStandardDialog;
-
-import org.apache.commons.lang3.builder.CompareToBuilder;
-import org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
-import org.greenrobot.eventbus.ThreadMode;
-import org.parceler.Parcels;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import javax.inject.Inject;
-
-import autodagger.AutoInjector;
-import butterknife.BindView;
import eu.davidea.fastscroller.FastScroller;
import eu.davidea.flexibleadapter.FlexibleAdapter;
import eu.davidea.flexibleadapter.common.SmoothScrollLinearLayoutManager;
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import javax.inject.Inject;
+import org.apache.commons.lang3.builder.CompareToBuilder;
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+import org.parceler.Parcels;
import retrofit2.HttpException;
@AutoInjector(NextcloudTalkApplication.class)
@@ -600,13 +594,12 @@ public class ConversationsListController extends BaseController implements Searc
conversation = ((CallItem) clickedItem).getModel();
}
-
Bundle bundle = new Bundle();
bundle.putParcelable(BundleKeys.INSTANCE.getKEY_USER_ENTITY(), currentUser);
bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN(), conversation.getToken());
bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_ID(), conversation.getRoomId());
- if (conversation.getHasPassword() && (conversation.getParticipantType().equals(Participant.ParticipantType.GUEST) ||
+ if (conversation.hasPassword && (conversation.getParticipantType().equals(Participant.ParticipantType.GUEST) ||
conversation.getParticipantType().equals(Participant.ParticipantType.USER_FOLLOWING_LINK))) {
bundle.putInt(BundleKeys.INSTANCE.getKEY_OPERATION_CODE(), 99);
prepareAndShowBottomSheetWithBundle(bundle, false);
diff --git a/presentation/src/main/java/com/nextcloud/talk/controllers/LockedController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/LockedController.java
index 98220d561..720bb2e71 100644
--- a/presentation/src/main/java/com/nextcloud/talk/controllers/LockedController.java
+++ b/presentation/src/main/java/com/nextcloud/talk/controllers/LockedController.java
@@ -42,10 +42,9 @@ import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.controllers.base.BaseController;
import com.nextcloud.talk.utils.SecurityUtils;
import com.nextcloud.talk.utils.preferences.AppPreferences;
-
-import javax.inject.Inject;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
+import javax.inject.Inject;
@AutoInjector(NextcloudTalkApplication.class)
public class LockedController extends BaseController {
diff --git a/presentation/src/main/java/com/nextcloud/talk/controllers/RingtoneSelectionController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/RingtoneSelectionController.java
index c728e57b1..4876e27b9 100644
--- a/presentation/src/main/java/com/nextcloud/talk/controllers/RingtoneSelectionController.java
+++ b/presentation/src/main/java/com/nextcloud/talk/controllers/RingtoneSelectionController.java
@@ -40,22 +40,21 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import autodagger.AutoInjector;
import butterknife.BindView;
import com.bluelinelabs.logansquare.LoganSquare;
+import com.nextcloud.talk.models.RingtoneSettings;
import com.nextcloud.talk.R;
import com.nextcloud.talk.adapters.items.NotificationSoundItem;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.controllers.base.BaseController;
-import com.nextcloud.data.models.RingtoneSettings;
import com.nextcloud.talk.utils.bundle.BundleKeys;
import com.nextcloud.talk.utils.preferences.AppPreferences;
import eu.davidea.flexibleadapter.FlexibleAdapter;
import eu.davidea.flexibleadapter.SelectableAdapter;
import eu.davidea.flexibleadapter.common.SmoothScrollLinearLayoutManager;
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem;
-
-import javax.inject.Inject;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import javax.inject.Inject;
@AutoInjector(NextcloudTalkApplication.class)
public class RingtoneSelectionController extends BaseController implements FlexibleAdapter.OnItemClickListener {
diff --git a/presentation/src/main/java/com/nextcloud/talk/controllers/ServerSelectionController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/ServerSelectionController.java
index fcaf2474b..e6cfd8ee5 100644
--- a/presentation/src/main/java/com/nextcloud/talk/controllers/ServerSelectionController.java
+++ b/presentation/src/main/java/com/nextcloud/talk/controllers/ServerSelectionController.java
@@ -35,9 +35,10 @@ import android.view.ViewGroup;
import android.view.inputmethod.EditorInfo;
import android.widget.ProgressBar;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
-
+import autodagger.AutoInjector;
+import butterknife.BindView;
+import butterknife.OnClick;
import com.bluelinelabs.conductor.RouterTransaction;
import com.bluelinelabs.conductor.changehandler.HorizontalChangeHandler;
import com.nextcloud.talk.R;
@@ -51,16 +52,10 @@ import com.nextcloud.talk.utils.database.user.UserUtils;
import com.nextcloud.talk.utils.preferences.AppPreferences;
import com.nextcloud.talk.utils.singletons.ApplicationWideMessageHolder;
import com.uber.autodispose.AutoDispose;
-
-import java.security.cert.CertificateException;
-
-import javax.inject.Inject;
-
-import autodagger.AutoInjector;
-import butterknife.BindView;
-import butterknife.OnClick;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
+import java.security.cert.CertificateException;
+import javax.inject.Inject;
import studio.carbonylgroup.textfieldboxes.ExtendedEditText;
import studio.carbonylgroup.textfieldboxes.TextFieldBoxes;
diff --git a/presentation/src/main/java/com/nextcloud/talk/controllers/SettingsController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/SettingsController.java
index 436270889..5420d6050 100644
--- a/presentation/src/main/java/com/nextcloud/talk/controllers/SettingsController.java
+++ b/presentation/src/main/java/com/nextcloud/talk/controllers/SettingsController.java
@@ -52,15 +52,19 @@ import com.bluelinelabs.logansquare.LoganSquare;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.drawee.interfaces.DraweeController;
import com.facebook.drawee.view.SimpleDraweeView;
+import com.nextcloud.talk.models.RingtoneSettings;
import com.nextcloud.talk.BuildConfig;
import com.nextcloud.talk.R;
import com.nextcloud.talk.api.NcApi;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.controllers.base.BaseController;
import com.nextcloud.talk.jobs.AccountRemovalWorker;
-import com.nextcloud.data.models.RingtoneSettings;
import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.talk.utils.*;
+import com.nextcloud.talk.utils.ApiUtils;
+import com.nextcloud.talk.utils.DisplayUtils;
+import com.nextcloud.talk.utils.DoNotDisturbUtils;
+import com.nextcloud.talk.utils.LoggingUtils;
+import com.nextcloud.talk.utils.SecurityUtils;
import com.nextcloud.talk.utils.bundle.BundleKeys;
import com.nextcloud.talk.utils.database.user.UserUtils;
import com.nextcloud.talk.utils.preferences.AppPreferences;
@@ -69,16 +73,24 @@ import com.nextcloud.talk.utils.singletons.ApplicationWideMessageHolder;
import com.uber.autodispose.AutoDispose;
import com.yarolegovich.lovelydialog.LovelySaveStateHandler;
import com.yarolegovich.lovelydialog.LovelyStandardDialog;
-import com.yarolegovich.mp.*;
+import com.yarolegovich.mp.MaterialChoicePreference;
+import com.yarolegovich.mp.MaterialEditTextPreference;
+import com.yarolegovich.mp.MaterialPreferenceCategory;
+import com.yarolegovich.mp.MaterialPreferenceScreen;
+import com.yarolegovich.mp.MaterialStandardPreference;
+import com.yarolegovich.mp.MaterialSwitchPreference;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
-import net.orange_box.storebox.listeners.OnPreferenceValueChangedListener;
-
-import javax.inject.Inject;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Locale;
+import java.util.Objects;
+import javax.inject.Inject;
+import net.orange_box.storebox.listeners.OnPreferenceValueChangedListener;
@AutoInjector(NextcloudTalkApplication.class)
public class SettingsController extends BaseController {
diff --git a/presentation/src/main/java/com/nextcloud/talk/controllers/SwitchAccountController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/SwitchAccountController.java
index af7781ac0..5cac427b7 100644
--- a/presentation/src/main/java/com/nextcloud/talk/controllers/SwitchAccountController.java
+++ b/presentation/src/main/java/com/nextcloud/talk/controllers/SwitchAccountController.java
@@ -37,28 +37,26 @@ import autodagger.AutoInjector;
import butterknife.BindView;
import com.bluelinelabs.conductor.RouterTransaction;
import com.bluelinelabs.conductor.changehandler.HorizontalChangeHandler;
+import com.nextcloud.talk.models.ImportAccount;
+import com.nextcloud.talk.models.json.participants.Participant;
import com.nextcloud.talk.R;
import com.nextcloud.talk.adapters.items.AdvancedUserItem;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.controllers.base.BaseController;
-import com.nextcloud.data.models.ImportAccount;
import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.data.models.json.participants.Participant;
import com.nextcloud.talk.utils.AccountUtils;
import com.nextcloud.talk.utils.bundle.BundleKeys;
import com.nextcloud.talk.utils.database.user.UserUtils;
import com.uber.autodispose.AutoDispose;
-
import eu.davidea.flexibleadapter.FlexibleAdapter;
import eu.davidea.flexibleadapter.common.SmoothScrollLinearLayoutManager;
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
-
-import javax.inject.Inject;
import java.net.CookieManager;
import java.util.ArrayList;
import java.util.List;
+import javax.inject.Inject;
@AutoInjector(NextcloudTalkApplication.class)
public class SwitchAccountController extends BaseController {
diff --git a/presentation/src/main/java/com/nextcloud/talk/controllers/WebViewLoginController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/WebViewLoginController.java
index 672e9fa22..348447c5b 100644
--- a/presentation/src/main/java/com/nextcloud/talk/controllers/WebViewLoginController.java
+++ b/presentation/src/main/java/com/nextcloud/talk/controllers/WebViewLoginController.java
@@ -33,7 +33,14 @@ import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.webkit.*;
+import android.webkit.ClientCertRequest;
+import android.webkit.CookieSyncManager;
+import android.webkit.SslErrorHandler;
+import android.webkit.WebResourceRequest;
+import android.webkit.WebResourceResponse;
+import android.webkit.WebSettings;
+import android.webkit.WebView;
+import android.webkit.WebViewClient;
import android.widget.ProgressBar;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
@@ -43,12 +50,12 @@ import autodagger.AutoInjector;
import butterknife.BindView;
import com.bluelinelabs.conductor.RouterTransaction;
import com.bluelinelabs.conductor.changehandler.HorizontalChangeHandler;
+import com.nextcloud.talk.models.LoginData;
import com.nextcloud.talk.R;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.controllers.base.BaseController;
import com.nextcloud.talk.events.CertificateEvent;
import com.nextcloud.talk.jobs.PushRegistrationWorker;
-import com.nextcloud.data.models.LoginData;
import com.nextcloud.talk.models.database.UserEntity;
import com.nextcloud.talk.utils.bundle.BundleKeys;
import com.nextcloud.talk.utils.database.user.UserUtils;
@@ -56,16 +63,12 @@ import com.nextcloud.talk.utils.preferences.AppPreferences;
import com.nextcloud.talk.utils.singletons.ApplicationWideMessageHolder;
import com.nextcloud.talk.utils.ssl.MagicTrustManager;
import com.uber.autodispose.AutoDispose;
-
import de.cotech.hw.fido.WebViewFidoBridge;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import io.requery.Persistable;
import io.requery.reactivex.ReactiveEntityStore;
-import org.greenrobot.eventbus.EventBus;
-
-import javax.inject.Inject;
import java.lang.reflect.Field;
import java.net.CookieManager;
import java.net.URLDecoder;
@@ -75,6 +78,8 @@ import java.security.cert.X509Certificate;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
+import javax.inject.Inject;
+import org.greenrobot.eventbus.EventBus;
@AutoInjector(NextcloudTalkApplication.class)
public class WebViewLoginController extends BaseController {
diff --git a/presentation/src/main/java/com/nextcloud/talk/controllers/base/BaseController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/base/BaseController.java
index 7ccc317e1..2191eb4bd 100644
--- a/presentation/src/main/java/com/nextcloud/talk/controllers/base/BaseController.java
+++ b/presentation/src/main/java/com/nextcloud/talk/controllers/base/BaseController.java
@@ -20,7 +20,6 @@ package com.nextcloud.talk.controllers.base;
import android.content.Context;
import android.os.Build;
-import android.os.Bundle;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
@@ -42,10 +41,9 @@ import com.nextcloud.talk.controllers.WebViewLoginController;
import com.nextcloud.talk.controllers.base.providers.ActionBarProvider;
import com.nextcloud.talk.utils.preferences.AppPreferences;
import com.uber.autodispose.lifecycle.LifecycleScopeProvider;
-
-import javax.inject.Inject;
import java.util.ArrayList;
import java.util.List;
+import javax.inject.Inject;
@AutoInjector(NextcloudTalkApplication.class)
public abstract class BaseController extends ButterKnifeController {
diff --git a/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/CallMenuController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/CallMenuController.java
index c19f77601..e963daf55 100644
--- a/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/CallMenuController.java
+++ b/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/CallMenuController.java
@@ -49,7 +49,7 @@ import com.nextcloud.talk.events.BottomSheetLockEvent;
import com.nextcloud.talk.interfaces.ConversationMenuInterface;
import com.nextcloud.talk.jobs.LeaveConversationWorker;
import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.data.models.json.conversations.Conversation;
+import com.nextcloud.talk.models.json.conversations.Conversation;
import com.nextcloud.talk.utils.DisplayUtils;
import com.nextcloud.talk.utils.ShareUtils;
import com.nextcloud.talk.utils.bundle.BundleKeys;
@@ -57,265 +57,291 @@ import com.nextcloud.talk.utils.database.user.UserUtils;
import eu.davidea.flexibleadapter.FlexibleAdapter;
import eu.davidea.flexibleadapter.common.SmoothScrollLinearLayoutManager;
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem;
+import java.util.ArrayList;
+import java.util.List;
+import javax.inject.Inject;
import org.greenrobot.eventbus.EventBus;
import org.parceler.Parcel;
import org.parceler.Parcels;
-import javax.inject.Inject;
-import java.util.ArrayList;
-import java.util.List;
-
@AutoInjector(NextcloudTalkApplication.class)
-public class CallMenuController extends BaseController implements FlexibleAdapter.OnItemClickListener {
- @BindView(R.id.recycler_view)
- RecyclerView recyclerView;
+public class CallMenuController extends BaseController
+ implements FlexibleAdapter.OnItemClickListener {
+ @BindView(R.id.recycler_view)
+ RecyclerView recyclerView;
- @Inject
- EventBus eventBus;
+ @Inject
+ EventBus eventBus;
- @Inject
- UserUtils userUtils;
+ @Inject
+ UserUtils userUtils;
- private Conversation conversation;
- private List menuItems;
- private FlexibleAdapter adapter;
- private MenuType menuType;
- private Intent shareIntent;
+ private Conversation conversation;
+ private List menuItems;
+ private FlexibleAdapter adapter;
+ private MenuType menuType;
+ private Intent shareIntent;
- private UserEntity currentUser;
- private ConversationMenuInterface conversationMenuInterface;
+ private UserEntity currentUser;
+ private ConversationMenuInterface conversationMenuInterface;
- public CallMenuController(Bundle args) {
- super();
- this.conversation = Parcels.unwrap(args.getParcelable(BundleKeys.INSTANCE.getKEY_ROOM()));
- if (args.containsKey(BundleKeys.INSTANCE.getKEY_MENU_TYPE())) {
- this.menuType = Parcels.unwrap(args.getParcelable(BundleKeys.INSTANCE.getKEY_MENU_TYPE()));
- }
+ public CallMenuController(Bundle args) {
+ super();
+ this.conversation = Parcels.unwrap(args.getParcelable(BundleKeys.INSTANCE.getKEY_ROOM()));
+ if (args.containsKey(BundleKeys.INSTANCE.getKEY_MENU_TYPE())) {
+ this.menuType = Parcels.unwrap(args.getParcelable(BundleKeys.INSTANCE.getKEY_MENU_TYPE()));
+ }
+ }
+
+ public CallMenuController(Bundle args,
+ @Nullable ConversationMenuInterface conversationMenuInterface) {
+ super();
+ this.conversation = Parcels.unwrap(args.getParcelable(BundleKeys.INSTANCE.getKEY_ROOM()));
+ if (args.containsKey(BundleKeys.INSTANCE.getKEY_MENU_TYPE())) {
+ this.menuType = Parcels.unwrap(args.getParcelable(BundleKeys.INSTANCE.getKEY_MENU_TYPE()));
+ }
+ this.conversationMenuInterface = conversationMenuInterface;
+ }
+
+ @Override
+ protected View inflateView(@NonNull LayoutInflater inflater, @NonNull ViewGroup container) {
+ return inflater.inflate(R.layout.controller_call_menu, container, false);
+ }
+
+ @Override
+ protected void onViewBound(@NonNull View view) {
+ super.onViewBound(view);
+ NextcloudTalkApplication.Companion.getSharedApplication()
+ .getComponentApplication()
+ .inject(this);
+ prepareViews();
+ }
+
+ private void prepareViews() {
+ LinearLayoutManager layoutManager = new SmoothScrollLinearLayoutManager(getActivity());
+ recyclerView.setLayoutManager(layoutManager);
+ recyclerView.setHasFixedSize(true);
+
+ prepareMenu();
+ if (adapter == null) {
+ adapter = new FlexibleAdapter<>(menuItems, getActivity(), false);
}
- public CallMenuController(Bundle args, @Nullable ConversationMenuInterface conversationMenuInterface) {
- super();
- this.conversation = Parcels.unwrap(args.getParcelable(BundleKeys.INSTANCE.getKEY_ROOM()));
- if (args.containsKey(BundleKeys.INSTANCE.getKEY_MENU_TYPE())) {
- this.menuType = Parcels.unwrap(args.getParcelable(BundleKeys.INSTANCE.getKEY_MENU_TYPE()));
- }
- this.conversationMenuInterface = conversationMenuInterface;
- }
+ adapter.addListener(this);
+ recyclerView.setAdapter(adapter);
+ }
- @Override
- protected View inflateView(@NonNull LayoutInflater inflater, @NonNull ViewGroup container) {
- return inflater.inflate(R.layout.controller_call_menu, container, false);
- }
+ private void prepareIntent() {
+ shareIntent = new Intent(Intent.ACTION_SEND);
+ shareIntent.setType("text/plain");
+ shareIntent.putExtra(Intent.EXTRA_SUBJECT,
+ String.format(getResources().getString(R.string.nc_share_subject),
+ getResources().getString(R.string.nc_app_name)));
+ }
- @Override
- protected void onViewBound(@NonNull View view) {
- super.onViewBound(view);
- NextcloudTalkApplication.Companion.getSharedApplication().getComponentApplication().inject(this);
- prepareViews();
- }
+ private void prepareMenu() {
+ menuItems = new ArrayList<>();
- private void prepareViews() {
- LinearLayoutManager layoutManager = new SmoothScrollLinearLayoutManager(getActivity());
- recyclerView.setLayoutManager(layoutManager);
- recyclerView.setHasFixedSize(true);
+ if (menuType.equals(MenuType.REGULAR)) {
+ if (!TextUtils.isEmpty(conversation.getDisplayName())) {
+ menuItems.add(new MenuItem(conversation.getDisplayName(), 0, null));
+ } else if (!TextUtils.isEmpty(conversation.getName())) {
+ menuItems.add(new MenuItem(conversation.getName(), 0, null));
+ } else {
+ menuItems.add(new MenuItem(getResources().getString(R.string.nc_configure_room), 0, null));
+ }
- prepareMenu();
- if (adapter == null) {
- adapter = new FlexibleAdapter<>(menuItems, getActivity(), false);
- }
+ currentUser = userUtils.getCurrentUser();
- adapter.addListener(this);
- recyclerView.setAdapter(adapter);
- }
+ if (conversation.isFavorite()) {
+ menuItems.add(new MenuItem(getResources().getString(R.string.nc_remove_from_favorites), 97,
+ DisplayUtils.getTintedDrawable(getResources(), R.drawable.ic_star_border_black_24dp,
+ R.color.grey_600)));
+ } else if (currentUser.hasSpreedFeatureCapability("favorites")) {
+ menuItems.add(new MenuItem(getResources().getString(R.string.nc_add_to_favorites)
+ , 98, DisplayUtils.getTintedDrawable(getResources(), R.drawable.ic_star_black_24dp,
+ R.color.grey_600)));
+ }
- private void prepareIntent() {
- shareIntent = new Intent(Intent.ACTION_SEND);
- shareIntent.setType("text/plain");
- shareIntent.putExtra(Intent.EXTRA_SUBJECT, String.format(getResources().getString(R.string.nc_share_subject),
- getResources().getString(R.string.nc_app_name)));
- }
+ if (conversation.isNameEditable(currentUser)) {
+ menuItems.add(new MenuItem(getResources().getString(R.string.nc_rename), 2,
+ getResources().getDrawable(R.drawable
+ .ic_pencil_grey600_24dp)));
+ }
- private void prepareMenu() {
- menuItems = new ArrayList<>();
-
- if (menuType.equals(MenuType.REGULAR)) {
- if (!TextUtils.isEmpty(conversation.getDisplayName())) {
- menuItems.add(new MenuItem(conversation.getDisplayName(), 0, null));
- } else if (!TextUtils.isEmpty(conversation.getName())) {
- menuItems.add(new MenuItem(conversation.getName(), 0, null));
- } else {
- menuItems.add(new MenuItem(getResources().getString(R.string.nc_configure_room), 0, null));
- }
-
- currentUser = userUtils.getCurrentUser();
-
- if (conversation.isFavorite()) {
- menuItems.add(new MenuItem(getResources().getString(R.string.nc_remove_from_favorites), 97, DisplayUtils.getTintedDrawable(getResources(), R.drawable.ic_star_border_black_24dp, R.color.grey_600)));
- } else if (currentUser.hasSpreedFeatureCapability("favorites")) {
- menuItems.add(new MenuItem(getResources().getString(R.string.nc_add_to_favorites)
- , 98, DisplayUtils.getTintedDrawable(getResources(), R.drawable.ic_star_black_24dp, R.color.grey_600)));
- }
-
- if (conversation.isNameEditable(currentUser)) {
- menuItems.add(new MenuItem(getResources().getString(R.string.nc_rename), 2, getResources().getDrawable(R.drawable
- .ic_pencil_grey600_24dp)));
- }
-
- if (conversation.canModerate(currentUser)) {
- if (!conversation.isPublic()) {
- menuItems.add(new MenuItem(getResources().getString(R.string.nc_make_call_public), 3, getResources().getDrawable(R.drawable
- .ic_link_grey600_24px)));
- } else {
- if (conversation.isHasPassword()) {
- menuItems.add(new MenuItem(getResources().getString(R.string.nc_change_password), 4, getResources().getDrawable(R.drawable
- .ic_lock_grey600_24px)));
- menuItems.add(new MenuItem(getResources().getString(R.string.nc_clear_password), 5, getResources().getDrawable(R.drawable
- .ic_lock_open_grey600_24dp)));
- } else {
- menuItems.add(new MenuItem(getResources().getString(R.string.nc_set_password), 6, getResources().getDrawable(R.drawable
- .ic_lock_plus_grey600_24dp)));
- }
- }
-
- menuItems.add(new MenuItem(getResources().getString(R.string.nc_delete_call), 9, getResources().getDrawable(R.drawable
- .ic_delete_grey600_24dp)));
- }
-
- if (conversation.isPublic()) {
- menuItems.add(new MenuItem(getResources().getString(R.string.nc_share_link), 7, getResources().getDrawable(R.drawable
- .ic_link_grey600_24px)));
- if (conversation.canModerate(currentUser)) {
- menuItems.add(new MenuItem(getResources().getString(R.string.nc_make_call_private), 8, getResources().getDrawable(R.drawable
- .ic_group_grey600_24px)));
- }
- }
-
-
- if (conversation.canLeave(currentUser)) {
- menuItems.add(new MenuItem(getResources().getString(R.string.nc_leave), 1,
- DisplayUtils.getTintedDrawable(getResources(),
- R.drawable.ic_exit_to_app_black_24dp, R.color.grey_600)
- ));
- }
- } else if (menuType.equals(MenuType.SHARE)) {
- prepareIntent();
- List appInfoList = ShareUtils.getShareApps(getActivity(), shareIntent, null,
- null);
- menuItems.add(new AppItem(getResources().getString(R.string.nc_share_link_via), "", "",
- getResources().getDrawable(R.drawable.ic_link_grey600_24px)));
- if (appInfoList != null) {
- for (AppAdapter.AppInfo appInfo : appInfoList) {
- menuItems.add(new AppItem(appInfo.title, appInfo.packageName, appInfo.name, appInfo.drawable));
- }
- }
+ if (conversation.canModerate(currentUser)) {
+ if (!conversation.isPublic()) {
+ menuItems.add(new MenuItem(getResources().getString(R.string.nc_make_call_public), 3,
+ getResources().getDrawable(R.drawable
+ .ic_link_grey600_24px)));
} else {
- menuItems.add(new MenuItem(getResources().getString(R.string.nc_start_conversation), 0, null));
- menuItems.add(new MenuItem(getResources().getString(R.string.nc_new_conversation), 1, getResources().getDrawable(R.drawable.ic_add_grey600_24px)));
- menuItems.add(new MenuItem(getResources().getString(R.string.nc_join_via_link), 2, getResources().getDrawable(R.drawable.ic_link_grey600_24px)));
+ if (conversation.isHasPassword()) {
+ menuItems.add(new MenuItem(getResources().getString(R.string.nc_change_password), 4,
+ getResources().getDrawable(R.drawable
+ .ic_lock_grey600_24px)));
+ menuItems.add(new MenuItem(getResources().getString(R.string.nc_clear_password), 5,
+ getResources().getDrawable(R.drawable
+ .ic_lock_open_grey600_24dp)));
+ } else {
+ menuItems.add(new MenuItem(getResources().getString(R.string.nc_set_password), 6,
+ getResources().getDrawable(R.drawable
+ .ic_lock_plus_grey600_24dp)));
+ }
}
+
+ menuItems.add(new MenuItem(getResources().getString(R.string.nc_delete_call), 9,
+ getResources().getDrawable(R.drawable
+ .ic_delete_grey600_24dp)));
+ }
+
+ if (conversation.isPublic()) {
+ menuItems.add(new MenuItem(getResources().getString(R.string.nc_share_link), 7,
+ getResources().getDrawable(R.drawable
+ .ic_link_grey600_24px)));
+ if (conversation.canModerate(currentUser)) {
+ menuItems.add(new MenuItem(getResources().getString(R.string.nc_make_call_private), 8,
+ getResources().getDrawable(R.drawable
+ .ic_group_grey600_24px)));
+ }
+ }
+
+ if (conversation.canLeave(currentUser)) {
+ menuItems.add(new MenuItem(getResources().getString(R.string.nc_leave), 1,
+ DisplayUtils.getTintedDrawable(getResources(),
+ R.drawable.ic_exit_to_app_black_24dp, R.color.grey_600)
+ ));
+ }
+ } else if (menuType.equals(MenuType.SHARE)) {
+ prepareIntent();
+ List appInfoList =
+ ShareUtils.getShareApps(getActivity(), shareIntent, null,
+ null);
+ menuItems.add(new AppItem(getResources().getString(R.string.nc_share_link_via), "", "",
+ getResources().getDrawable(R.drawable.ic_link_grey600_24px)));
+ if (appInfoList != null) {
+ for (AppAdapter.AppInfo appInfo : appInfoList) {
+ menuItems.add(
+ new AppItem(appInfo.title, appInfo.packageName, appInfo.name, appInfo.drawable));
+ }
+ }
+ } else {
+ menuItems.add(
+ new MenuItem(getResources().getString(R.string.nc_start_conversation), 0, null));
+ menuItems.add(new MenuItem(getResources().getString(R.string.nc_new_conversation), 1,
+ getResources().getDrawable(R.drawable.ic_add_grey600_24px)));
+ menuItems.add(new MenuItem(getResources().getString(R.string.nc_join_via_link), 2,
+ getResources().getDrawable(R.drawable.ic_link_grey600_24px)));
}
+ }
- @Override
- public boolean onItemClick(View view, int position) {
- Bundle bundle = new Bundle();
- bundle.putParcelable(BundleKeys.INSTANCE.getKEY_ROOM(), Parcels.wrap(conversation));
+ @Override
+ public boolean onItemClick(View view, int position) {
+ Bundle bundle = new Bundle();
+ bundle.putParcelable(BundleKeys.INSTANCE.getKEY_ROOM(), Parcels.wrap(conversation));
- if (menuType.equals(MenuType.REGULAR)) {
- MenuItem menuItem = (MenuItem) adapter.getItem(position);
- if (menuItem != null) {
+ if (menuType.equals(MenuType.REGULAR)) {
+ MenuItem menuItem = (MenuItem) adapter.getItem(position);
+ if (menuItem != null) {
- int tag = menuItem.getTag();
- if (tag == 5) {
- conversation.setPassword("");
- }
+ int tag = menuItem.getTag();
+ if (tag == 5) {
+ conversation.setPassword("");
+ }
- if (tag > 0) {
- if (tag == 1 || tag == 9) {
- if (tag == 1) {
- Data data;
- if ((data = getWorkerData()) != null) {
- OneTimeWorkRequest leaveConversationWorker =
- new OneTimeWorkRequest.Builder(LeaveConversationWorker.class).setInputData(data).build();
- WorkManager.getInstance().enqueue(leaveConversationWorker);
- }
- } else {
- Bundle deleteConversationBundle;
- if ((deleteConversationBundle = getDeleteConversationBundle()) != null) {
- conversationMenuInterface.openLovelyDialogWithIdAndBundle(ConversationsListController.ID_DELETE_CONVERSATION_DIALOG, deleteConversationBundle);
- }
- }
- eventBus.post(new BottomSheetLockEvent(true, 0, false, true));
- } else {
- bundle.putInt(BundleKeys.INSTANCE.getKEY_OPERATION_CODE(), tag);
- if (tag != 2 && tag != 4 && tag != 6 && tag != 7) {
- eventBus.post(new BottomSheetLockEvent(false, 0, false, false));
- getRouter().pushController(RouterTransaction.with(new OperationsMenuController(bundle))
- .pushChangeHandler(new HorizontalChangeHandler())
- .popChangeHandler(new HorizontalChangeHandler()));
- } else if (tag != 7) {
- getRouter().pushController(RouterTransaction.with(new EntryMenuController(bundle))
- .pushChangeHandler(new HorizontalChangeHandler())
- .popChangeHandler(new HorizontalChangeHandler()));
- } else {
- bundle.putParcelable(BundleKeys.INSTANCE.getKEY_MENU_TYPE(), Parcels.wrap(MenuType.SHARE));
- getRouter().pushController(RouterTransaction.with(new CallMenuController(bundle, null))
- .pushChangeHandler(new HorizontalChangeHandler())
- .popChangeHandler(new HorizontalChangeHandler()));
- }
- }
- }
+ if (tag > 0) {
+ if (tag == 1 || tag == 9) {
+ if (tag == 1) {
+ Data data;
+ if ((data = getWorkerData()) != null) {
+ OneTimeWorkRequest leaveConversationWorker =
+ new OneTimeWorkRequest.Builder(LeaveConversationWorker.class).setInputData(data)
+ .build();
+ WorkManager.getInstance().enqueue(leaveConversationWorker);
+ }
+ } else {
+ Bundle deleteConversationBundle;
+ if ((deleteConversationBundle = getDeleteConversationBundle()) != null) {
+ conversationMenuInterface.openLovelyDialogWithIdAndBundle(
+ ConversationsListController.ID_DELETE_CONVERSATION_DIALOG,
+ deleteConversationBundle);
+ }
}
- } else if (menuType.equals(MenuType.SHARE) && position != 0) {
- AppItem appItem = (AppItem) adapter.getItem(position);
- if (appItem != null && getActivity() != null) {
- if (!conversation.getHasPassword()) {
- shareIntent.putExtra(Intent.EXTRA_TEXT, ShareUtils.getStringForIntent(getActivity(), null,
- userUtils, conversation));
- Intent intent = new Intent(shareIntent);
- intent.setComponent(new ComponentName(appItem.getPackageName(), appItem.getName()));
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- eventBus.post(new BottomSheetLockEvent(true, 0, false, true));
- getActivity().startActivity(intent);
- } else {
- bundle.putInt(BundleKeys.INSTANCE.getKEY_OPERATION_CODE(), 7);
- bundle.putParcelable(BundleKeys.INSTANCE.getKEY_SHARE_INTENT(), Parcels.wrap(shareIntent));
- bundle.putString(BundleKeys.INSTANCE.getKEY_APP_ITEM_PACKAGE_NAME(), appItem.getPackageName());
- bundle.putString(BundleKeys.INSTANCE.getKEY_APP_ITEM_NAME(), appItem.getName());
- getRouter().pushController(RouterTransaction.with(new EntryMenuController(bundle))
- .pushChangeHandler(new HorizontalChangeHandler())
- .popChangeHandler(new HorizontalChangeHandler()));
- }
+ eventBus.post(new BottomSheetLockEvent(true, 0, false, true));
+ } else {
+ bundle.putInt(BundleKeys.INSTANCE.getKEY_OPERATION_CODE(), tag);
+ if (tag != 2 && tag != 4 && tag != 6 && tag != 7) {
+ eventBus.post(new BottomSheetLockEvent(false, 0, false, false));
+ getRouter().pushController(
+ RouterTransaction.with(new OperationsMenuController(bundle))
+ .pushChangeHandler(new HorizontalChangeHandler())
+ .popChangeHandler(new HorizontalChangeHandler()));
+ } else if (tag != 7) {
+ getRouter().pushController(RouterTransaction.with(new EntryMenuController(bundle))
+ .pushChangeHandler(new HorizontalChangeHandler())
+ .popChangeHandler(new HorizontalChangeHandler()));
+ } else {
+ bundle.putParcelable(BundleKeys.INSTANCE.getKEY_MENU_TYPE(),
+ Parcels.wrap(MenuType.SHARE));
+ getRouter().pushController(
+ RouterTransaction.with(new CallMenuController(bundle, null))
+ .pushChangeHandler(new HorizontalChangeHandler())
+ .popChangeHandler(new HorizontalChangeHandler()));
}
+ }
}
-
- return true;
- }
-
- private Data getWorkerData() {
- if (!TextUtils.isEmpty(conversation.getToken())) {
- Data.Builder data = new Data.Builder();
- data.putString(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN(), conversation.getToken());
- data.putLong(BundleKeys.INSTANCE.getKEY_INTERNAL_USER_ID(), currentUser.getId());
- return data.build();
+ }
+ } else if (menuType.equals(MenuType.SHARE) && position != 0) {
+ AppItem appItem = (AppItem) adapter.getItem(position);
+ if (appItem != null && getActivity() != null) {
+ if (!conversation.hasPassword) {
+ shareIntent.putExtra(Intent.EXTRA_TEXT, ShareUtils.getStringForIntent(getActivity(), null,
+ userUtils, conversation));
+ Intent intent = new Intent(shareIntent);
+ intent.setComponent(new ComponentName(appItem.getPackageName(), appItem.getName()));
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ eventBus.post(new BottomSheetLockEvent(true, 0, false, true));
+ getActivity().startActivity(intent);
+ } else {
+ bundle.putInt(BundleKeys.INSTANCE.getKEY_OPERATION_CODE(), 7);
+ bundle.putParcelable(BundleKeys.INSTANCE.getKEY_SHARE_INTENT(),
+ Parcels.wrap(shareIntent));
+ bundle.putString(BundleKeys.INSTANCE.getKEY_APP_ITEM_PACKAGE_NAME(),
+ appItem.getPackageName());
+ bundle.putString(BundleKeys.INSTANCE.getKEY_APP_ITEM_NAME(), appItem.getName());
+ getRouter().pushController(RouterTransaction.with(new EntryMenuController(bundle))
+ .pushChangeHandler(new HorizontalChangeHandler())
+ .popChangeHandler(new HorizontalChangeHandler()));
}
-
- return null;
+ }
}
- private Bundle getDeleteConversationBundle() {
- if (!TextUtils.isEmpty(conversation.getToken())) {
- Bundle bundle = new Bundle();
- bundle.putLong(BundleKeys.INSTANCE.getKEY_INTERNAL_USER_ID(), currentUser.getId());
- bundle.putParcelable(BundleKeys.INSTANCE.getKEY_ROOM(), Parcels.wrap(conversation));
- return bundle;
- }
-
- return null;
+ return true;
+ }
+ private Data getWorkerData() {
+ if (!TextUtils.isEmpty(conversation.getToken())) {
+ Data.Builder data = new Data.Builder();
+ data.putString(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN(), conversation.getToken());
+ data.putLong(BundleKeys.INSTANCE.getKEY_INTERNAL_USER_ID(), currentUser.getId());
+ return data.build();
}
- @Parcel
- public enum MenuType {
- REGULAR, SHARE
+ return null;
+ }
+
+ private Bundle getDeleteConversationBundle() {
+ if (!TextUtils.isEmpty(conversation.getToken())) {
+ Bundle bundle = new Bundle();
+ bundle.putLong(BundleKeys.INSTANCE.getKEY_INTERNAL_USER_ID(), currentUser.getId());
+ bundle.putParcelable(BundleKeys.INSTANCE.getKEY_ROOM(), Parcels.wrap(conversation));
+ return bundle;
}
+
+ return null;
+ }
+
+ @Parcel
+ public enum MenuType {
+ REGULAR, SHARE
+ }
}
diff --git a/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/EntryMenuController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/EntryMenuController.java
index 20960591a..13d8fc9fa 100644
--- a/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/EntryMenuController.java
+++ b/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/EntryMenuController.java
@@ -34,7 +34,6 @@ import android.view.ViewGroup;
import android.view.inputmethod.EditorInfo;
import android.widget.Button;
import android.widget.ImageView;
-
import androidx.annotation.NonNull;
import autodagger.AutoInjector;
import butterknife.BindView;
@@ -46,7 +45,7 @@ import com.nextcloud.talk.R;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.controllers.base.BaseController;
import com.nextcloud.talk.events.BottomSheetLockEvent;
-import com.nextcloud.data.models.json.conversations.Conversation;
+import com.nextcloud.talk.models.json.conversations.Conversation;
import com.nextcloud.talk.utils.EmojiTextInputEditText;
import com.nextcloud.talk.utils.ShareUtils;
import com.nextcloud.talk.utils.bundle.BundleKeys;
@@ -58,12 +57,10 @@ import com.vanniktech.emoji.emoji.Emoji;
import com.vanniktech.emoji.listeners.OnEmojiClickListener;
import com.vanniktech.emoji.listeners.OnEmojiPopupDismissListener;
import com.vanniktech.emoji.listeners.OnEmojiPopupShownListener;
-
+import javax.inject.Inject;
import org.greenrobot.eventbus.EventBus;
import org.parceler.Parcels;
-import javax.inject.Inject;
-
@AutoInjector(NextcloudTalkApplication.class)
public class EntryMenuController extends BaseController {
diff --git a/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/OperationsMenuController.java b/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/OperationsMenuController.java
index 47696affe..00f5ec6b3 100644
--- a/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/OperationsMenuController.java
+++ b/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/OperationsMenuController.java
@@ -35,48 +35,42 @@ import android.widget.Button;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-
+import autodagger.AutoInjector;
+import butterknife.BindView;
import com.bluelinelabs.conductor.RouterTransaction;
import com.bluelinelabs.conductor.changehandler.HorizontalChangeHandler;
import com.bluelinelabs.logansquare.LoganSquare;
+import com.nextcloud.talk.models.RetrofitBucket;
+import com.nextcloud.talk.models.json.capabilities.Capabilities;
+import com.nextcloud.talk.models.json.capabilities.CapabilitiesOverall;
+import com.nextcloud.talk.models.json.conversations.Conversation;
+import com.nextcloud.talk.models.json.conversations.RoomOverall;
+import com.nextcloud.talk.models.json.generic.GenericOverall;
+import com.nextcloud.talk.models.json.participants.AddParticipantOverall;
import com.nextcloud.talk.R;
import com.nextcloud.talk.activities.MagicCallActivity;
import com.nextcloud.talk.api.NcApi;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.controllers.base.BaseController;
import com.nextcloud.talk.events.BottomSheetLockEvent;
-import com.nextcloud.data.models.RetrofitBucket;
import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.data.models.json.capabilities.Capabilities;
-import com.nextcloud.data.models.json.capabilities.CapabilitiesOverall;
-import com.nextcloud.data.models.json.conversations.Conversation;
-import com.nextcloud.data.models.json.conversations.RoomOverall;
-import com.nextcloud.data.models.json.generic.GenericOverall;
-import com.nextcloud.data.models.json.participants.AddParticipantOverall;
import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.ConductorRemapping;
import com.nextcloud.talk.utils.DisplayUtils;
import com.nextcloud.talk.utils.bundle.BundleKeys;
import com.nextcloud.talk.utils.database.user.UserUtils;
import com.nextcloud.talk.utils.singletons.ApplicationWideMessageHolder;
-
-import org.greenrobot.eventbus.EventBus;
-import org.parceler.Parcels;
-
-import java.io.IOException;
-import java.util.ArrayList;
-
-import javax.inject.Inject;
-
-import autodagger.AutoInjector;
-import butterknife.BindView;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
+import java.io.IOException;
+import java.util.ArrayList;
+import javax.inject.Inject;
+import org.greenrobot.eventbus.EventBus;
+import org.parceler.Parcels;
import retrofit2.HttpException;
@AutoInjector(NextcloudTalkApplication.class)
diff --git a/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/items/ListIconDialogAdapter.kt b/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/items/ListIconDialogAdapter.kt
index 43c66fd1a..40aa475f3 100644
--- a/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/items/ListIconDialogAdapter.kt
+++ b/presentation/src/main/java/com/nextcloud/talk/controllers/bottomsheet/items/ListIconDialogAdapter.kt
@@ -23,7 +23,6 @@ package com.nextcloud.talk.controllers.bottomsheet.items
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
-import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.afollestad.materialdialogs.MaterialDialog
import com.afollestad.materialdialogs.WhichButton
@@ -34,7 +33,6 @@ import com.afollestad.materialdialogs.internal.rtl.RtlTextView
import com.afollestad.materialdialogs.list.getItemSelector
import com.afollestad.materialdialogs.utils.MDUtil.inflate
import com.afollestad.materialdialogs.utils.MDUtil.maybeSetTextColor
-import com.google.android.material.textview.MaterialTextView
import com.nextcloud.talk.R
private const val KEY_ACTIVATED_INDEX = "activated_index"
diff --git a/presentation/src/main/java/com/nextcloud/talk/dagger/modules/BusModule.java b/presentation/src/main/java/com/nextcloud/talk/dagger/modules/BusModule.java
index a8817229a..4feb5d1db 100644
--- a/presentation/src/main/java/com/nextcloud/talk/dagger/modules/BusModule.java
+++ b/presentation/src/main/java/com/nextcloud/talk/dagger/modules/BusModule.java
@@ -22,9 +22,8 @@ package com.nextcloud.talk.dagger.modules;
import dagger.Module;
import dagger.Provides;
-import org.greenrobot.eventbus.EventBus;
-
import javax.inject.Singleton;
+import org.greenrobot.eventbus.EventBus;
@Module
public class BusModule {
diff --git a/presentation/src/main/java/com/nextcloud/talk/dagger/modules/DatabaseModule.java b/presentation/src/main/java/com/nextcloud/talk/dagger/modules/DatabaseModule.java
index 3ff5643a5..8c38f082d 100644
--- a/presentation/src/main/java/com/nextcloud/talk/dagger/modules/DatabaseModule.java
+++ b/presentation/src/main/java/com/nextcloud/talk/dagger/modules/DatabaseModule.java
@@ -33,9 +33,8 @@ import io.requery.reactivex.ReactiveEntityStore;
import io.requery.reactivex.ReactiveSupport;
import io.requery.sql.Configuration;
import io.requery.sql.EntityDataStore;
-import net.orange_box.storebox.StoreBox;
-
import javax.inject.Singleton;
+import net.orange_box.storebox.StoreBox;
@Module
public class DatabaseModule {
diff --git a/presentation/src/main/java/com/nextcloud/talk/dagger/modules/RestModule.java b/presentation/src/main/java/com/nextcloud/talk/dagger/modules/RestModule.java
index de2a058db..42e514621 100644
--- a/presentation/src/main/java/com/nextcloud/talk/dagger/modules/RestModule.java
+++ b/presentation/src/main/java/com/nextcloud/talk/dagger/modules/RestModule.java
@@ -41,15 +41,6 @@ import com.nextcloud.talk.utils.ssl.SSLSocketFactoryCompat;
import dagger.Module;
import dagger.Provides;
import io.reactivex.schedulers.Schedulers;
-import okhttp3.*;
-import okhttp3.internal.tls.OkHostnameVerifier;
-import okhttp3.logging.HttpLoggingInterceptor;
-import retrofit2.Retrofit;
-import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
-
-import javax.inject.Singleton;
-import javax.net.ssl.KeyManagerFactory;
-import javax.net.ssl.X509KeyManager;
import java.io.IOException;
import java.net.CookieManager;
import java.net.InetSocketAddress;
@@ -60,6 +51,23 @@ import java.security.NoSuchAlgorithmException;
import java.security.UnrecoverableKeyException;
import java.security.cert.CertificateException;
import java.util.concurrent.TimeUnit;
+import javax.inject.Singleton;
+import javax.net.ssl.KeyManagerFactory;
+import javax.net.ssl.X509KeyManager;
+import okhttp3.Authenticator;
+import okhttp3.Cache;
+import okhttp3.Credentials;
+import okhttp3.Dispatcher;
+import okhttp3.Interceptor;
+import okhttp3.JavaNetCookieJar;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.Response;
+import okhttp3.Route;
+import okhttp3.internal.tls.OkHostnameVerifier;
+import okhttp3.logging.HttpLoggingInterceptor;
+import retrofit2.Retrofit;
+import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
@Module(includes = DatabaseModule.class)
public class RestModule {
diff --git a/presentation/src/main/java/com/nextcloud/talk/events/CertificateEvent.java b/presentation/src/main/java/com/nextcloud/talk/events/CertificateEvent.java
index f23f63c55..c7af5c84d 100644
--- a/presentation/src/main/java/com/nextcloud/talk/events/CertificateEvent.java
+++ b/presentation/src/main/java/com/nextcloud/talk/events/CertificateEvent.java
@@ -23,7 +23,6 @@ package com.nextcloud.talk.events;
import android.webkit.SslErrorHandler;
import androidx.annotation.Nullable;
import com.nextcloud.talk.utils.ssl.MagicTrustManager;
-
import java.security.cert.X509Certificate;
public class CertificateEvent {
diff --git a/presentation/src/main/java/com/nextcloud/talk/events/MoreMenuClickEvent.java b/presentation/src/main/java/com/nextcloud/talk/events/MoreMenuClickEvent.java
index f35fac1f9..bca88d9e4 100644
--- a/presentation/src/main/java/com/nextcloud/talk/events/MoreMenuClickEvent.java
+++ b/presentation/src/main/java/com/nextcloud/talk/events/MoreMenuClickEvent.java
@@ -20,7 +20,7 @@
package com.nextcloud.talk.events;
-import com.nextcloud.data.models.json.conversations.Conversation;
+import com.nextcloud.talk.models.json.conversations.Conversation;
import lombok.Data;
@Data
diff --git a/presentation/src/main/java/com/nextcloud/talk/events/SessionDescriptionSendEvent.java b/presentation/src/main/java/com/nextcloud/talk/events/SessionDescriptionSendEvent.java
index 2669f244f..4fd81563f 100644
--- a/presentation/src/main/java/com/nextcloud/talk/events/SessionDescriptionSendEvent.java
+++ b/presentation/src/main/java/com/nextcloud/talk/events/SessionDescriptionSendEvent.java
@@ -21,7 +21,7 @@
package com.nextcloud.talk.events;
import androidx.annotation.Nullable;
-import com.nextcloud.data.models.json.signaling.NCIceCandidate;
+import com.nextcloud.talk.models.json.signaling.NCIceCandidate;
import lombok.Data;
import org.webrtc.SessionDescription;
diff --git a/presentation/src/main/java/com/nextcloud/talk/events/WebSocketCommunicationEvent.java b/presentation/src/main/java/com/nextcloud/talk/events/WebSocketCommunicationEvent.java
index c801af4b2..d6a36a8a7 100644
--- a/presentation/src/main/java/com/nextcloud/talk/events/WebSocketCommunicationEvent.java
+++ b/presentation/src/main/java/com/nextcloud/talk/events/WebSocketCommunicationEvent.java
@@ -21,9 +21,8 @@
package com.nextcloud.talk.events;
import androidx.annotation.Nullable;
-import lombok.Data;
-
import java.util.HashMap;
+import lombok.Data;
@Data
public class WebSocketCommunicationEvent {
diff --git a/presentation/src/main/java/com/nextcloud/talk/jobs/AccountRemovalWorker.java b/presentation/src/main/java/com/nextcloud/talk/jobs/AccountRemovalWorker.java
index 5472faf13..1cb795a4a 100644
--- a/presentation/src/main/java/com/nextcloud/talk/jobs/AccountRemovalWorker.java
+++ b/presentation/src/main/java/com/nextcloud/talk/jobs/AccountRemovalWorker.java
@@ -20,7 +20,6 @@
package com.nextcloud.talk.jobs;
-
import android.app.NotificationManager;
import android.content.Context;
import android.os.Build;
@@ -31,12 +30,12 @@ import androidx.work.Worker;
import androidx.work.WorkerParameters;
import autodagger.AutoInjector;
import com.bluelinelabs.logansquare.LoganSquare;
+import com.nextcloud.talk.models.json.generic.GenericOverall;
+import com.nextcloud.talk.models.json.push.PushConfigurationState;
import com.nextcloud.talk.R;
import com.nextcloud.talk.api.NcApi;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.data.models.json.generic.GenericOverall;
-import com.nextcloud.data.models.json.push.PushConfigurationState;
import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.database.arbitrarystorage.ArbitraryStorageUtils;
import com.nextcloud.talk.utils.database.user.UserUtils;
@@ -44,15 +43,14 @@ import com.nextcloud.talk.webrtc.WebSocketConnectionHelper;
import io.reactivex.CompletableObserver;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
-import okhttp3.JavaNetCookieJar;
-import okhttp3.OkHttpClient;
-import retrofit2.Retrofit;
-
-import javax.inject.Inject;
import java.io.IOException;
import java.net.CookieManager;
import java.util.HashMap;
import java.util.zip.CRC32;
+import javax.inject.Inject;
+import okhttp3.JavaNetCookieJar;
+import okhttp3.OkHttpClient;
+import retrofit2.Retrofit;
@AutoInjector(NextcloudTalkApplication.class)
public class AccountRemovalWorker extends Worker {
diff --git a/presentation/src/main/java/com/nextcloud/talk/jobs/AddParticipantsToConversation.java b/presentation/src/main/java/com/nextcloud/talk/jobs/AddParticipantsToConversation.java
index 7242d6492..ff1f538b2 100644
--- a/presentation/src/main/java/com/nextcloud/talk/jobs/AddParticipantsToConversation.java
+++ b/presentation/src/main/java/com/nextcloud/talk/jobs/AddParticipantsToConversation.java
@@ -21,26 +21,22 @@
package com.nextcloud.talk.jobs;
import android.content.Context;
-
-import com.nextcloud.talk.api.NcApi;
-import com.nextcloud.talk.application.NextcloudTalkApplication;
-import com.nextcloud.talk.events.EventStatus;
-import com.nextcloud.data.models.RetrofitBucket;
-import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.talk.utils.ApiUtils;
-import com.nextcloud.talk.utils.bundle.BundleKeys;
-import com.nextcloud.talk.utils.database.user.UserUtils;
-
-import org.greenrobot.eventbus.EventBus;
-
-import javax.inject.Inject;
-
import androidx.annotation.NonNull;
import androidx.work.Data;
import androidx.work.Worker;
import androidx.work.WorkerParameters;
import autodagger.AutoInjector;
+import com.nextcloud.talk.models.RetrofitBucket;
+import com.nextcloud.talk.api.NcApi;
+import com.nextcloud.talk.application.NextcloudTalkApplication;
+import com.nextcloud.talk.events.EventStatus;
+import com.nextcloud.talk.models.database.UserEntity;
+import com.nextcloud.talk.utils.ApiUtils;
+import com.nextcloud.talk.utils.bundle.BundleKeys;
+import com.nextcloud.talk.utils.database.user.UserUtils;
import io.reactivex.schedulers.Schedulers;
+import javax.inject.Inject;
+import org.greenrobot.eventbus.EventBus;
@AutoInjector(NextcloudTalkApplication.class)
public class AddParticipantsToConversation extends Worker {
diff --git a/presentation/src/main/java/com/nextcloud/talk/jobs/CapabilitiesWorker.java b/presentation/src/main/java/com/nextcloud/talk/jobs/CapabilitiesWorker.java
index 2278eeb37..8ce0e32fa 100644
--- a/presentation/src/main/java/com/nextcloud/talk/jobs/CapabilitiesWorker.java
+++ b/presentation/src/main/java/com/nextcloud/talk/jobs/CapabilitiesWorker.java
@@ -28,26 +28,25 @@ import androidx.work.Worker;
import androidx.work.WorkerParameters;
import autodagger.AutoInjector;
import com.bluelinelabs.logansquare.LoganSquare;
+import com.nextcloud.talk.models.json.capabilities.CapabilitiesOverall;
import com.nextcloud.talk.api.NcApi;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.events.EventStatus;
import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.data.models.json.capabilities.CapabilitiesOverall;
import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.bundle.BundleKeys;
import com.nextcloud.talk.utils.database.user.UserUtils;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
-import okhttp3.JavaNetCookieJar;
-import okhttp3.OkHttpClient;
-import org.greenrobot.eventbus.EventBus;
-import retrofit2.Retrofit;
-
-import javax.inject.Inject;
import java.io.IOException;
import java.net.CookieManager;
import java.util.ArrayList;
import java.util.List;
+import javax.inject.Inject;
+import okhttp3.JavaNetCookieJar;
+import okhttp3.OkHttpClient;
+import org.greenrobot.eventbus.EventBus;
+import retrofit2.Retrofit;
@AutoInjector(NextcloudTalkApplication.class)
public class CapabilitiesWorker extends Worker {
diff --git a/presentation/src/main/java/com/nextcloud/talk/jobs/DeleteConversationWorker.java b/presentation/src/main/java/com/nextcloud/talk/jobs/DeleteConversationWorker.java
index 3b8f4e1eb..593d0717b 100644
--- a/presentation/src/main/java/com/nextcloud/talk/jobs/DeleteConversationWorker.java
+++ b/presentation/src/main/java/com/nextcloud/talk/jobs/DeleteConversationWorker.java
@@ -26,25 +26,24 @@ import androidx.work.Data;
import androidx.work.Worker;
import androidx.work.WorkerParameters;
import autodagger.AutoInjector;
+import com.nextcloud.talk.models.json.generic.GenericOverall;
import com.nextcloud.talk.api.NcApi;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.events.EventStatus;
import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.data.models.json.generic.GenericOverall;
import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.bundle.BundleKeys;
import com.nextcloud.talk.utils.database.user.UserUtils;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
+import java.net.CookieManager;
+import javax.inject.Inject;
import okhttp3.JavaNetCookieJar;
import okhttp3.OkHttpClient;
import org.greenrobot.eventbus.EventBus;
import retrofit2.Retrofit;
-import javax.inject.Inject;
-import java.net.CookieManager;
-
@AutoInjector(NextcloudTalkApplication.class)
public class DeleteConversationWorker extends Worker {
@Inject
diff --git a/presentation/src/main/java/com/nextcloud/talk/jobs/LeaveConversationWorker.java b/presentation/src/main/java/com/nextcloud/talk/jobs/LeaveConversationWorker.java
index b1b61e29b..bee508c0c 100644
--- a/presentation/src/main/java/com/nextcloud/talk/jobs/LeaveConversationWorker.java
+++ b/presentation/src/main/java/com/nextcloud/talk/jobs/LeaveConversationWorker.java
@@ -26,25 +26,24 @@ import androidx.work.Data;
import androidx.work.Worker;
import androidx.work.WorkerParameters;
import autodagger.AutoInjector;
+import com.nextcloud.talk.models.json.generic.GenericOverall;
import com.nextcloud.talk.api.NcApi;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.events.EventStatus;
import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.data.models.json.generic.GenericOverall;
import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.bundle.BundleKeys;
import com.nextcloud.talk.utils.database.user.UserUtils;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
+import java.net.CookieManager;
+import javax.inject.Inject;
import okhttp3.JavaNetCookieJar;
import okhttp3.OkHttpClient;
import org.greenrobot.eventbus.EventBus;
import retrofit2.Retrofit;
-import javax.inject.Inject;
-import java.net.CookieManager;
-
@AutoInjector(NextcloudTalkApplication.class)
public class LeaveConversationWorker extends Worker {
@Inject
diff --git a/presentation/src/main/java/com/nextcloud/talk/jobs/NotificationWorker.java b/presentation/src/main/java/com/nextcloud/talk/jobs/NotificationWorker.java
index fa263475d..11143fb69 100644
--- a/presentation/src/main/java/com/nextcloud/talk/jobs/NotificationWorker.java
+++ b/presentation/src/main/java/com/nextcloud/talk/jobs/NotificationWorker.java
@@ -38,7 +38,6 @@ import android.service.notification.StatusBarNotification;
import android.text.TextUtils;
import android.util.Base64;
import android.util.Log;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.app.NotificationCompat;
@@ -49,7 +48,7 @@ import androidx.emoji.text.EmojiCompat;
import androidx.work.Data;
import androidx.work.Worker;
import androidx.work.WorkerParameters;
-
+import autodagger.AutoInjector;
import com.bluelinelabs.logansquare.LoganSquare;
import com.facebook.common.executors.UiThreadImmediateExecutorService;
import com.facebook.common.references.CloseableReference;
@@ -65,16 +64,16 @@ import com.nextcloud.talk.activities.MagicCallActivity;
import com.nextcloud.talk.activities.MainActivity;
import com.nextcloud.talk.api.NcApi;
import com.nextcloud.talk.application.NextcloudTalkApplication;
-import com.nextcloud.data.models.RingtoneSettings;
-import com.nextcloud.data.models.SignatureVerification;
+import com.nextcloud.talk.models.RingtoneSettings;
+import com.nextcloud.talk.models.SignatureVerification;
import com.nextcloud.talk.models.database.ArbitraryStorageEntity;
import com.nextcloud.talk.models.database.UserEntity;
import com.nextcloud.talk.models.json.chat.ChatUtils;
-import com.nextcloud.data.models.json.conversations.Conversation;
-import com.nextcloud.data.models.json.conversations.RoomOverall;
-import com.nextcloud.data.models.json.notifications.NotificationOverall;
-import com.nextcloud.data.models.json.push.DecryptedPushMessage;
-import com.nextcloud.data.models.json.push.NotificationUser;
+import com.nextcloud.talk.models.json.conversations.Conversation;
+import com.nextcloud.talk.models.json.conversations.RoomOverall;
+import com.nextcloud.talk.models.json.notifications.NotificationOverall;
+import com.nextcloud.talk.models.json.push.DecryptedPushMessage;
+import com.nextcloud.talk.models.json.push.NotificationUser;
import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.DisplayUtils;
import com.nextcloud.talk.utils.DoNotDisturbUtils;
@@ -84,9 +83,8 @@ import com.nextcloud.talk.utils.bundle.BundleKeys;
import com.nextcloud.talk.utils.database.arbitrarystorage.ArbitraryStorageUtils;
import com.nextcloud.talk.utils.preferences.AppPreferences;
import com.nextcloud.talk.utils.singletons.ApplicationWideCurrentRoomHolder;
-
-import org.parceler.Parcels;
-
+import io.reactivex.Observer;
+import io.reactivex.disposables.Disposable;
import java.io.IOException;
import java.net.CookieManager;
import java.security.InvalidKeyException;
@@ -94,559 +92,593 @@ import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.util.HashMap;
import java.util.zip.CRC32;
-
import javax.crypto.Cipher;
import javax.crypto.NoSuchPaddingException;
import javax.inject.Inject;
-
-import autodagger.AutoInjector;
-import io.reactivex.Observer;
-import io.reactivex.disposables.Disposable;
import okhttp3.JavaNetCookieJar;
import okhttp3.OkHttpClient;
+import org.parceler.Parcels;
import retrofit2.Retrofit;
@AutoInjector(NextcloudTalkApplication.class)
public class NotificationWorker extends Worker {
- public static final String TAG = "NotificationWorker";
+ public static final String TAG = "NotificationWorker";
- @Inject
- AppPreferences appPreferences;
+ @Inject
+ AppPreferences appPreferences;
- @Inject
- ArbitraryStorageUtils arbitraryStorageUtils;
+ @Inject
+ ArbitraryStorageUtils arbitraryStorageUtils;
- @Inject
- Retrofit retrofit;
+ @Inject
+ Retrofit retrofit;
- @Inject
- OkHttpClient okHttpClient;
+ @Inject
+ OkHttpClient okHttpClient;
- private NcApi ncApi;
+ private NcApi ncApi;
- private DecryptedPushMessage decryptedPushMessage;
- private Context context;
- private SignatureVerification signatureVerification;
- private String conversationType = "one2one";
+ private DecryptedPushMessage decryptedPushMessage;
+ private Context context;
+ private SignatureVerification signatureVerification;
+ private String conversationType = "one2one";
- private String credentials;
- private boolean muteCall = false;
- private boolean importantConversation = false;
+ private String credentials;
+ private boolean muteCall = false;
+ private boolean importantConversation = false;
- public NotificationWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
- super(context, workerParams);
+ public NotificationWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
+ super(context, workerParams);
+ }
+
+ private void showNotificationForCallWithNoPing(Intent intent) {
+ UserEntity userEntity = signatureVerification.getUserEntity();
+
+ ArbitraryStorageEntity arbitraryStorageEntity;
+
+ if ((arbitraryStorageEntity = arbitraryStorageUtils.getStorageSetting(userEntity.getId(),
+ "mute_calls", intent.getExtras().getString(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN())))
+ != null) {
+ muteCall = Boolean.parseBoolean(arbitraryStorageEntity.getValue());
}
- private void showNotificationForCallWithNoPing(Intent intent) {
- UserEntity userEntity = signatureVerification.getUserEntity();
+ if ((arbitraryStorageEntity = arbitraryStorageUtils.getStorageSetting(userEntity.getId(),
+ "important_conversation",
+ intent.getExtras().getString(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN()))) != null) {
+ importantConversation = Boolean.parseBoolean(arbitraryStorageEntity.getValue());
+ }
- ArbitraryStorageEntity arbitraryStorageEntity;
+ if (DoNotDisturbUtils.INSTANCE.isDnDActive()) {
+ if (!DoNotDisturbUtils.INSTANCE.isInDoNotDisturbWithPriority()
+ || !importantConversation
+ || muteCall) {
+ return;
+ }
+ }
- if ((arbitraryStorageEntity = arbitraryStorageUtils.getStorageSetting(userEntity.getId(),
- "mute_calls", intent.getExtras().getString(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN()))) != null) {
- muteCall = Boolean.parseBoolean(arbitraryStorageEntity.getValue());
- }
+ ncApi.getRoom(credentials, ApiUtils.getRoom(userEntity.getBaseUrl(),
+ intent.getExtras().getString(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN())))
+ .blockingSubscribe(new Observer() {
+ @Override
+ public void onSubscribe(Disposable d) {
- if ((arbitraryStorageEntity = arbitraryStorageUtils.getStorageSetting(userEntity.getId(),
- "important_conversation", intent.getExtras().getString(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN()))) != null) {
- importantConversation = Boolean.parseBoolean(arbitraryStorageEntity.getValue());
- }
+ }
+ @Override
+ public void onNext(RoomOverall roomOverall) {
+ Conversation conversation = roomOverall.getOcs().getData();
- if (DoNotDisturbUtils.INSTANCE.isDnDActive()) {
- if (!DoNotDisturbUtils.INSTANCE.isInDoNotDisturbWithPriority() || !importantConversation || muteCall) {
- return;
+ intent.putExtra(BundleKeys.INSTANCE.getKEY_ROOM(), Parcels.wrap(conversation));
+ if (conversation.getType()
+ .equals(Conversation.ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL) ||
+ (!TextUtils.isEmpty(conversation.getObjectType()) && "share:password".equals
+ (conversation.getObjectType()))) {
+ context.startActivity(intent);
+ } else {
+ if (conversation.getType().equals(Conversation.ConversationType.ROOM_GROUP_CALL)) {
+ conversationType = "group";
+ } else {
+ conversationType = "public";
+ }
+ if (decryptedPushMessage.getNotificationId() != Long.MIN_VALUE) {
+ showNotificationWithObjectData(intent);
+ } else {
+ showNotification(intent);
+ }
}
- }
+ }
- ncApi.getRoom(credentials, ApiUtils.getRoom(userEntity.getBaseUrl(),
- intent.getExtras().getString(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN())))
- .blockingSubscribe(new Observer() {
- @Override
- public void onSubscribe(Disposable d) {
+ @Override
+ public void onError(Throwable e) {
+ }
- }
+ @Override
+ public void onComplete() {
- @Override
- public void onNext(RoomOverall roomOverall) {
- Conversation conversation = roomOverall.getOcs().getData();
+ }
+ });
+ }
- intent.putExtra(BundleKeys.INSTANCE.getKEY_ROOM(), Parcels.wrap(conversation));
- if (conversation.getType().equals(Conversation.ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL) ||
- (!TextUtils.isEmpty(conversation.getObjectType()) && "share:password".equals
- (conversation.getObjectType()))) {
- context.startActivity(intent);
- } else {
- if (conversation.getType().equals(Conversation.ConversationType.ROOM_GROUP_CALL)) {
- conversationType = "group";
- } else {
- conversationType = "public";
- }
- if (decryptedPushMessage.getNotificationId() != Long.MIN_VALUE) {
- showNotificationWithObjectData(intent);
- } else {
- showNotification(intent);
- }
- }
- }
+ private void showNotificationWithObjectData(Intent intent) {
+ UserEntity userEntity = signatureVerification.getUserEntity();
+ ncApi.getNotification(credentials, ApiUtils.getUrlForNotificationWithId(userEntity.getBaseUrl(),
+ Long.toString(decryptedPushMessage.getNotificationId())))
+ .blockingSubscribe(new Observer() {
+ @Override
+ public void onSubscribe(Disposable d) {
- @Override
- public void onError(Throwable e) {
- }
+ }
- @Override
- public void onComplete() {
+ @Override
+ public void onNext(NotificationOverall notificationOverall) {
+ com.nextcloud.talk.models.json.notifications.Notification notification =
+ notificationOverall.getOcs().getNotification();
- }
- });
- }
+ if (notification.getMessageRichParameters() != null &&
+ notification.getMessageRichParameters().size() > 0) {
+ decryptedPushMessage.setText(ChatUtils.getParsedMessage(notification.getMessageRich(),
+ notification.getMessageRichParameters()));
+ } else {
+ decryptedPushMessage.setText(notification.getMessage());
+ }
- private void showNotificationWithObjectData(Intent intent) {
- UserEntity userEntity = signatureVerification.getUserEntity();
- ncApi.getNotification(credentials, ApiUtils.getUrlForNotificationWithId(userEntity.getBaseUrl(),
- Long.toString(decryptedPushMessage.getNotificationId())))
- .blockingSubscribe(new Observer() {
- @Override
- public void onSubscribe(Disposable d) {
+ HashMap> subjectRichParameters = notification
+ .getSubjectRichParameters();
- }
+ decryptedPushMessage.setTimestamp(notification.getDatetime().getMillis());
- @Override
- public void onNext(NotificationOverall notificationOverall) {
- com.nextcloud.data.models.json.notifications.Notification notification =
- notificationOverall.getOcs().getNotification();
+ if (subjectRichParameters != null && subjectRichParameters.size() > 0) {
+ HashMap callHashMap = subjectRichParameters.get("call");
+ HashMap userHashMap = subjectRichParameters.get("user");
+ HashMap guestHashMap = subjectRichParameters.get("guest");
- if (notification.getMessageRichParameters() != null &&
- notification.getMessageRichParameters().size() > 0) {
- decryptedPushMessage.setText(ChatUtils.INSTANCE.getParsedMessage(notification.getMessageRich(),
- notification.getMessageRichParameters()));
- } else {
- decryptedPushMessage.setText(notification.getMessage());
- }
-
- HashMap> subjectRichParameters = notification
- .getSubjectRichParameters();
-
- decryptedPushMessage.setTimestamp(notification.getDatetime().getMillis());
-
- if (subjectRichParameters != null && subjectRichParameters.size() > 0) {
- HashMap callHashMap = subjectRichParameters.get("call");
- HashMap userHashMap = subjectRichParameters.get("user");
- HashMap guestHashMap = subjectRichParameters.get("guest");
-
- if (callHashMap != null && callHashMap.size() > 0 && callHashMap.containsKey("name")) {
- if (notification.getObjectType().equals("chat")) {
- decryptedPushMessage.setSubject(callHashMap.get("name"));
- } else {
- decryptedPushMessage.setSubject(notification.getSubject());
- }
-
- if (callHashMap.containsKey("call-type")) {
- conversationType = callHashMap.get("call-type");
- }
- }
-
- NotificationUser notificationUser = new NotificationUser();
- if (userHashMap != null && !userHashMap.isEmpty()) {
- notificationUser.setId(userHashMap.get("id"));
- notificationUser.setType(userHashMap.get("type"));
- notificationUser.setName(userHashMap.get("name"));
- decryptedPushMessage.setNotificationUser(notificationUser);
- } else if (guestHashMap != null && !guestHashMap.isEmpty()) {
- notificationUser.setId(guestHashMap.get("id"));
- notificationUser.setType(guestHashMap.get("type"));
- notificationUser.setName(guestHashMap.get("name"));
- decryptedPushMessage.setNotificationUser(notificationUser);
- }
- }
-
- showNotification(intent);
- }
-
- @Override
- public void onError(Throwable e) {
-
- }
-
- @Override
- public void onComplete() {
- }
- });
- }
-
- private void showNotification(Intent intent) {
- int smallIcon;
- Bitmap largeIcon;
- String category;
- int priority = Notification.PRIORITY_HIGH;
-
- smallIcon = R.drawable.ic_logo;
-
- if (decryptedPushMessage.getType().equals("chat") || decryptedPushMessage.getType().equals("room")) {
- category = Notification.CATEGORY_MESSAGE;
- } else {
- category = Notification.CATEGORY_CALL;
- }
-
- switch (conversationType) {
- case "group":
- largeIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_people_group_black_24px);
- break;
- case "public":
- largeIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_link_black_24px);
- break;
- default:
- // assuming one2one
- if (decryptedPushMessage.getType().equals("chat") || decryptedPushMessage.getType().equals("room")) {
- largeIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_chat_black_24dp);
+ if (callHashMap != null && callHashMap.size() > 0 && callHashMap.containsKey(
+ "name")) {
+ if (notification.getObjectType().equals("chat")) {
+ decryptedPushMessage.setSubject(callHashMap.get("name"));
} else {
- largeIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_call_black_24dp);
+ decryptedPushMessage.setSubject(notification.getSubject());
}
+
+ if (callHashMap.containsKey("call-type")) {
+ conversationType = callHashMap.get("call-type");
+ }
+ }
+
+ NotificationUser notificationUser = new NotificationUser();
+ if (userHashMap != null && !userHashMap.isEmpty()) {
+ notificationUser.setId(userHashMap.get("id"));
+ notificationUser.setType(userHashMap.get("type"));
+ notificationUser.setName(userHashMap.get("name"));
+ decryptedPushMessage.setNotificationUser(notificationUser);
+ } else if (guestHashMap != null && !guestHashMap.isEmpty()) {
+ notificationUser.setId(guestHashMap.get("id"));
+ notificationUser.setType(guestHashMap.get("type"));
+ notificationUser.setName(guestHashMap.get("name"));
+ decryptedPushMessage.setNotificationUser(notificationUser);
+ }
+ }
+
+ showNotification(intent);
+ }
+
+ @Override
+ public void onError(Throwable e) {
+
+ }
+
+ @Override
+ public void onComplete() {
+ }
+ });
+ }
+
+ private void showNotification(Intent intent) {
+ int smallIcon;
+ Bitmap largeIcon;
+ String category;
+ int priority = Notification.PRIORITY_HIGH;
+
+ smallIcon = R.drawable.ic_logo;
+
+ if (decryptedPushMessage.getType().equals("chat") || decryptedPushMessage.getType()
+ .equals("room")) {
+ category = Notification.CATEGORY_MESSAGE;
+ } else {
+ category = Notification.CATEGORY_CALL;
+ }
+
+ switch (conversationType) {
+ case "group":
+ largeIcon = BitmapFactory.decodeResource(context.getResources(),
+ R.drawable.ic_people_group_black_24px);
+ break;
+ case "public":
+ largeIcon =
+ BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_link_black_24px);
+ break;
+ default:
+ // assuming one2one
+ if (decryptedPushMessage.getType().equals("chat") || decryptedPushMessage.getType()
+ .equals("room")) {
+ largeIcon =
+ BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_chat_black_24dp);
+ } else {
+ largeIcon =
+ BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_call_black_24dp);
}
+ }
- intent.setAction(Long.toString(System.currentTimeMillis()));
+ intent.setAction(Long.toString(System.currentTimeMillis()));
- PendingIntent pendingIntent = PendingIntent.getActivity(context,
- 0, intent, 0);
+ PendingIntent pendingIntent = PendingIntent.getActivity(context,
+ 0, intent, 0);
- Uri uri = Uri.parse(signatureVerification.getUserEntity().getBaseUrl());
- String baseUrl = uri.getHost();
+ Uri uri = Uri.parse(signatureVerification.getUserEntity().getBaseUrl());
+ String baseUrl = uri.getHost();
- NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context, "1")
- .setLargeIcon(largeIcon)
- .setSmallIcon(smallIcon)
- .setCategory(category)
- .setPriority(priority)
- .setSubText(baseUrl)
- .setWhen(decryptedPushMessage.getTimestamp())
- .setShowWhen(true)
- .setContentTitle(EmojiCompat.get().process(decryptedPushMessage.getSubject()))
- .setContentIntent(pendingIntent)
- .setAutoCancel(true);
+ NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context, "1")
+ .setLargeIcon(largeIcon)
+ .setSmallIcon(smallIcon)
+ .setCategory(category)
+ .setPriority(priority)
+ .setSubText(baseUrl)
+ .setWhen(decryptedPushMessage.getTimestamp())
+ .setShowWhen(true)
+ .setContentTitle(EmojiCompat.get().process(decryptedPushMessage.getSubject()))
+ .setContentIntent(pendingIntent)
+ .setAutoCancel(true);
- if (!TextUtils.isEmpty(decryptedPushMessage.getText())) {
- notificationBuilder.setContentText(EmojiCompat.get().process(decryptedPushMessage.getText()));
- }
+ if (!TextUtils.isEmpty(decryptedPushMessage.getText())) {
+ notificationBuilder.setContentText(EmojiCompat.get().process(decryptedPushMessage.getText()));
+ }
- if (Build.VERSION.SDK_INT >= 23) {
- // This method should exist since API 21, but some phones don't have it
- // So as a safeguard, we don't use it until 23
- notificationBuilder.setColor(context.getResources().getColor(R.color.colorPrimary));
- }
+ if (Build.VERSION.SDK_INT >= 23) {
+ // This method should exist since API 21, but some phones don't have it
+ // So as a safeguard, we don't use it until 23
+ notificationBuilder.setColor(context.getResources().getColor(R.color.colorPrimary));
+ }
- Bundle notificationInfo = new Bundle();
- notificationInfo.putLong(BundleKeys.INSTANCE.getKEY_INTERNAL_USER_ID(), signatureVerification.getUserEntity().getId());
- // could be an ID or a TOKEN
- notificationInfo.putString(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN(), decryptedPushMessage.getId());
- notificationInfo.putLong(BundleKeys.INSTANCE.getKEY_NOTIFICATION_ID(), decryptedPushMessage.getNotificationId());
- notificationBuilder.setExtras(notificationInfo);
+ Bundle notificationInfo = new Bundle();
+ notificationInfo.putLong(BundleKeys.INSTANCE.getKEY_INTERNAL_USER_ID(),
+ signatureVerification.getUserEntity().getId());
+ // could be an ID or a TOKEN
+ notificationInfo.putString(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN(),
+ decryptedPushMessage.getId());
+ notificationInfo.putLong(BundleKeys.INSTANCE.getKEY_NOTIFICATION_ID(),
+ decryptedPushMessage.getNotificationId());
+ notificationBuilder.setExtras(notificationInfo);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
/*NotificationUtils.createNotificationChannelGroup(context,
Long.toString(crc32.getValue()),
groupName);*/
- if (decryptedPushMessage.getType().equals("chat") || decryptedPushMessage.getType().equals("room")) {
- NotificationUtils.INSTANCE.createNotificationChannel(context,
- NotificationUtils.INSTANCE.getNOTIFICATION_CHANNEL_MESSAGES_V3(), context.getResources()
- .getString(R.string.nc_notification_channel_messages), context.getResources()
- .getString(R.string.nc_notification_channel_messages), true,
- NotificationManager.IMPORTANCE_HIGH);
+ if (decryptedPushMessage.getType().equals("chat") || decryptedPushMessage.getType()
+ .equals("room")) {
+ NotificationUtils.INSTANCE.createNotificationChannel(context,
+ NotificationUtils.INSTANCE.getNOTIFICATION_CHANNEL_MESSAGES_V3(), context.getResources()
+ .getString(R.string.nc_notification_channel_messages), context.getResources()
+ .getString(R.string.nc_notification_channel_messages), true,
+ NotificationManager.IMPORTANCE_HIGH);
- notificationBuilder.setChannelId(NotificationUtils.INSTANCE.getNOTIFICATION_CHANNEL_MESSAGES_V3());
- } else {
- NotificationUtils.INSTANCE.createNotificationChannel(context,
- NotificationUtils.INSTANCE.getNOTIFICATION_CHANNEL_CALLS_V3(), context.getResources()
- .getString(R.string.nc_notification_channel_calls), context.getResources()
- .getString(R.string.nc_notification_channel_calls_description), true,
- NotificationManager.IMPORTANCE_HIGH);
+ notificationBuilder.setChannelId(
+ NotificationUtils.INSTANCE.getNOTIFICATION_CHANNEL_MESSAGES_V3());
+ } else {
+ NotificationUtils.INSTANCE.createNotificationChannel(context,
+ NotificationUtils.INSTANCE.getNOTIFICATION_CHANNEL_CALLS_V3(), context.getResources()
+ .getString(R.string.nc_notification_channel_calls), context.getResources()
+ .getString(R.string.nc_notification_channel_calls_description), true,
+ NotificationManager.IMPORTANCE_HIGH);
- notificationBuilder.setChannelId(NotificationUtils.INSTANCE.getNOTIFICATION_CHANNEL_CALLS_V3());
- }
+ notificationBuilder.setChannelId(
+ NotificationUtils.INSTANCE.getNOTIFICATION_CHANNEL_CALLS_V3());
+ }
+ } else {
+ // red color for the lights
+ notificationBuilder.setLights(0xFFFF0000, 200, 200);
+ }
- } else {
- // red color for the lights
- notificationBuilder.setLights(0xFFFF0000, 200, 200);
+ notificationBuilder.setContentIntent(pendingIntent);
+
+ CRC32 crc32 = new CRC32();
+
+ String groupName =
+ signatureVerification.getUserEntity().getId() + "@" + decryptedPushMessage.getId();
+ crc32.update(groupName.getBytes());
+ notificationBuilder.setGroup(Long.toString(crc32.getValue()));
+
+ // notificationId
+ crc32 = new CRC32();
+ String stringForCrc = String.valueOf(System.currentTimeMillis());
+ crc32.update(stringForCrc.getBytes());
+
+ StatusBarNotification activeStatusBarNotification =
+ NotificationUtils.INSTANCE.findNotificationForRoom(context,
+ signatureVerification.getUserEntity(), decryptedPushMessage.getId());
+
+ int notificationId;
+
+ if (activeStatusBarNotification != null) {
+ notificationId = activeStatusBarNotification.getId();
+ } else {
+ notificationId = (int) crc32.getValue();
+ }
+
+ if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N
+ && decryptedPushMessage.getNotificationUser() != null
+ && decryptedPushMessage.getType().equals("chat")) {
+ NotificationCompat.MessagingStyle style = null;
+ if (activeStatusBarNotification != null) {
+ Notification activeNotification = activeStatusBarNotification.getNotification();
+ style = NotificationCompat.MessagingStyle.extractMessagingStyleFromNotification(
+ activeNotification);
+ }
+
+ Person.Builder person =
+ new Person.Builder().setKey(signatureVerification.getUserEntity().getId() +
+ "@" + decryptedPushMessage.getNotificationUser().getId())
+ .setName(
+ EmojiCompat.get().process(decryptedPushMessage.getNotificationUser().getName()))
+ .setBot(decryptedPushMessage.getNotificationUser().getType().equals("bot"));
+
+ notificationBuilder.setOnlyAlertOnce(true);
+
+ if (decryptedPushMessage.getNotificationUser().getType().equals("user")
+ || decryptedPushMessage.getNotificationUser().getType().equals("guest")) {
+ String avatarUrl =
+ ApiUtils.getUrlForAvatarWithName(signatureVerification.getUserEntity().getBaseUrl(),
+ decryptedPushMessage.getNotificationUser().getId(), R.dimen.avatar_size);
+
+ if (decryptedPushMessage.getNotificationUser().getType().equals("guest")) {
+ avatarUrl = ApiUtils.getUrlForAvatarWithNameForGuests(
+ signatureVerification.getUserEntity().getBaseUrl(),
+ decryptedPushMessage.getNotificationUser().getName(), R.dimen.avatar_size);
}
- notificationBuilder.setContentIntent(pendingIntent);
+ ImageRequest imageRequest =
+ DisplayUtils.getImageRequestForUrl(avatarUrl, null);
+ ImagePipeline imagePipeline = Fresco.getImagePipeline();
+ DataSource> dataSource =
+ imagePipeline.fetchDecodedImage(imageRequest, context);
-
- CRC32 crc32 = new CRC32();
-
- String groupName = signatureVerification.getUserEntity().getId() + "@" + decryptedPushMessage.getId();
- crc32.update(groupName.getBytes());
- notificationBuilder.setGroup(Long.toString(crc32.getValue()));
-
- // notificationId
- crc32 = new CRC32();
- String stringForCrc = String.valueOf(System.currentTimeMillis());
- crc32.update(stringForCrc.getBytes());
-
- StatusBarNotification activeStatusBarNotification =
- NotificationUtils.INSTANCE.findNotificationForRoom(context,
- signatureVerification.getUserEntity(), decryptedPushMessage.getId());
-
- int notificationId;
-
- if (activeStatusBarNotification != null) {
- notificationId = activeStatusBarNotification.getId();
- } else {
- notificationId = (int) crc32.getValue();
- }
-
- if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N && decryptedPushMessage.getNotificationUser() != null && decryptedPushMessage.getType().equals("chat")) {
- NotificationCompat.MessagingStyle style = null;
- if (activeStatusBarNotification != null) {
- Notification activeNotification = activeStatusBarNotification.getNotification();
- style = NotificationCompat.MessagingStyle.extractMessagingStyleFromNotification(activeNotification);
- }
-
- Person.Builder person =
- new Person.Builder().setKey(signatureVerification.getUserEntity().getId() +
- "@" + decryptedPushMessage.getNotificationUser().getId()).setName(EmojiCompat.get().process(decryptedPushMessage.getNotificationUser().getName())).setBot(decryptedPushMessage.getNotificationUser().getType().equals("bot"));
-
- notificationBuilder.setOnlyAlertOnce(true);
-
- if (decryptedPushMessage.getNotificationUser().getType().equals("user") || decryptedPushMessage.getNotificationUser().getType().equals("guest")) {
- String avatarUrl = ApiUtils.getUrlForAvatarWithName(signatureVerification.getUserEntity().getBaseUrl(), decryptedPushMessage.getNotificationUser().getId(), R.dimen.avatar_size);
-
- if (decryptedPushMessage.getNotificationUser().getType().equals("guest")) {
- avatarUrl = ApiUtils.getUrlForAvatarWithNameForGuests(signatureVerification.getUserEntity().getBaseUrl(),
- decryptedPushMessage.getNotificationUser().getName(), R.dimen.avatar_size);
+ NotificationCompat.MessagingStyle finalStyle = style;
+ dataSource.subscribe(
+ new BaseBitmapDataSubscriber() {
+ @Override
+ protected void onNewResultImpl(Bitmap bitmap) {
+ if (bitmap != null) {
+ new RoundAsCirclePostprocessor(true).process(bitmap);
+ person.setIcon(IconCompat.createWithBitmap(bitmap));
+ notificationBuilder.setStyle(getStyle(person.build(),
+ finalStyle));
+ sendNotificationWithId(notificationId, notificationBuilder.build());
}
+ }
- ImageRequest imageRequest =
- DisplayUtils.getImageRequestForUrl(avatarUrl, null);
- ImagePipeline imagePipeline = Fresco.getImagePipeline();
- DataSource> dataSource = imagePipeline.fetchDecodedImage(imageRequest, context);
-
- NotificationCompat.MessagingStyle finalStyle = style;
- dataSource.subscribe(
- new BaseBitmapDataSubscriber() {
- @Override
- protected void onNewResultImpl(Bitmap bitmap) {
- if (bitmap != null) {
- new RoundAsCirclePostprocessor(true).process(bitmap);
- person.setIcon(IconCompat.createWithBitmap(bitmap));
- notificationBuilder.setStyle(getStyle(person.build(),
- finalStyle));
- sendNotificationWithId(notificationId, notificationBuilder.build());
-
- }
- }
-
- @Override
- protected void onFailureImpl(DataSource> dataSource) {
- notificationBuilder.setStyle(getStyle(person.build(), finalStyle));
- sendNotificationWithId(notificationId, notificationBuilder.build());
- }
- },
- UiThreadImmediateExecutorService.getInstance());
- } else {
- notificationBuilder.setStyle(getStyle(person.build(), style));
+ @Override
+ protected void onFailureImpl(
+ DataSource> dataSource) {
+ notificationBuilder.setStyle(getStyle(person.build(), finalStyle));
sendNotificationWithId(notificationId, notificationBuilder.build());
- }
- } else {
- sendNotificationWithId(notificationId, notificationBuilder.build());
- }
+ }
+ },
+ UiThreadImmediateExecutorService.getInstance());
+ } else {
+ notificationBuilder.setStyle(getStyle(person.build(), style));
+ sendNotificationWithId(notificationId, notificationBuilder.build());
+ }
+ } else {
+ sendNotificationWithId(notificationId, notificationBuilder.build());
+ }
+ }
+ private NotificationCompat.MessagingStyle getStyle(Person person,
+ @Nullable NotificationCompat.MessagingStyle style) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+ NotificationCompat.MessagingStyle newStyle =
+ new NotificationCompat.MessagingStyle(person);
+
+ newStyle.setConversationTitle(decryptedPushMessage.getSubject());
+ newStyle.setGroupConversation(!conversationType.equals("one2one"));
+
+ if (style != null) {
+ style.getMessages()
+ .forEach(message -> newStyle.addMessage(
+ new NotificationCompat.MessagingStyle.Message(message.getText(),
+ message.getTimestamp(), message.getPerson())));
+ }
+
+ newStyle.addMessage(decryptedPushMessage.getText(), decryptedPushMessage.getTimestamp(),
+ person);
+ return newStyle;
}
- private NotificationCompat.MessagingStyle getStyle(Person person, @Nullable NotificationCompat.MessagingStyle style) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
- NotificationCompat.MessagingStyle newStyle =
- new NotificationCompat.MessagingStyle(person);
+ // we'll never come here
+ return style;
+ }
- newStyle.setConversationTitle(decryptedPushMessage.getSubject());
- newStyle.setGroupConversation(!conversationType.equals("one2one"));
+ private void sendNotificationWithId(int notificationId, Notification notification) {
+ NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context);
+ notificationManager.notify(notificationId, notification);
- if (style != null) {
- style.getMessages().forEach(message -> newStyle.addMessage(new NotificationCompat.MessagingStyle.Message(message.getText(), message.getTimestamp(), message.getPerson())));
- }
-
- newStyle.addMessage(decryptedPushMessage.getText(), decryptedPushMessage.getTimestamp(), person);
- return newStyle;
- }
-
- // we'll never come here
- return style;
- }
-
- private void sendNotificationWithId(int notificationId, Notification notification) {
- NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context);
- notificationManager.notify(notificationId, notification);
-
-
- if (!notification.category.equals(Notification.CATEGORY_CALL)) {
- String ringtonePreferencesString;
- Uri soundUri;
-
- ringtonePreferencesString = appPreferences.getMessageRingtoneUri();
- if (TextUtils.isEmpty(ringtonePreferencesString)) {
- soundUri = Uri.parse("android.resource://" + context.getPackageName() +
- "/raw/librem_by_feandesign_message");
- } else {
- try {
- RingtoneSettings ringtoneSettings = LoganSquare.parse
- (ringtonePreferencesString, RingtoneSettings.class);
- soundUri = ringtoneSettings.getRingtoneUri();
- } catch (IOException exception) {
- soundUri = Uri.parse("android.resource://" + context.getPackageName() +
- "/raw/librem_by_feandesign_message");
- }
- }
-
- if (soundUri != null && !ApplicationWideCurrentRoomHolder.getInstance().isInCall() &&
- (DoNotDisturbUtils.INSTANCE.shouldPlaySound() || importantConversation)) {
- AudioAttributes.Builder audioAttributesBuilder = new AudioAttributes.Builder().setContentType
- (AudioAttributes.CONTENT_TYPE_SONIFICATION);
-
- if (decryptedPushMessage.getType().equals("chat") || decryptedPushMessage.getType().equals("room")) {
- audioAttributesBuilder.setUsage(AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_INSTANT);
- } else {
- audioAttributesBuilder.setUsage(AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_REQUEST);
- }
-
- MediaPlayer mediaPlayer = new MediaPlayer();
- try {
- mediaPlayer.setDataSource(context, soundUri);
- mediaPlayer.setAudioAttributes(audioAttributesBuilder.build());
-
- mediaPlayer.setOnPreparedListener(mp -> mediaPlayer.start());
- mediaPlayer.setOnCompletionListener(MediaPlayer::release);
-
- mediaPlayer.prepareAsync();
- } catch (IOException e) {
- Log.e(TAG, "Failed to set data source");
- }
- }
-
-
- if (DoNotDisturbUtils.INSTANCE.shouldVibrate(appPreferences.getShouldVibrateSetting()) || importantConversation) {
- Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
-
- if (vibrator != null) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
- vibrator.vibrate(VibrationEffect.createOneShot(500, VibrationEffect.DEFAULT_AMPLITUDE));
- } else {
- vibrator.vibrate(500);
- }
- }
- }
- }
- }
-
- @NonNull
- @Override
- public Result doWork() {
- NextcloudTalkApplication.Companion.getSharedApplication().getComponentApplication().inject(this);
-
- context = getApplicationContext();
- Data data = getInputData();
- String subject = data.getString(BundleKeys.INSTANCE.getKEY_NOTIFICATION_SUBJECT());
- String signature = data.getString(BundleKeys.INSTANCE.getKEY_NOTIFICATION_SIGNATURE());
+ if (!notification.category.equals(Notification.CATEGORY_CALL)) {
+ String ringtonePreferencesString;
+ Uri soundUri;
+ ringtonePreferencesString = appPreferences.getMessageRingtoneUri();
+ if (TextUtils.isEmpty(ringtonePreferencesString)) {
+ soundUri = Uri.parse("android.resource://" + context.getPackageName() +
+ "/raw/librem_by_feandesign_message");
+ } else {
try {
- byte[] base64DecodedSubject = Base64.decode(subject, Base64.DEFAULT);
- byte[] base64DecodedSignature = Base64.decode(signature, Base64.DEFAULT);
- PushUtils pushUtils = new PushUtils();
- PrivateKey privateKey = (PrivateKey) pushUtils.readKeyFromFile(false);
-
- try {
- signatureVerification = pushUtils.verifySignature(base64DecodedSignature,
- base64DecodedSubject);
-
- if (signatureVerification.isSignatureValid()) {
- Cipher cipher = Cipher.getInstance("RSA/None/PKCS1Padding");
- cipher.init(Cipher.DECRYPT_MODE, privateKey);
- byte[] decryptedSubject = cipher.doFinal(base64DecodedSubject);
- decryptedPushMessage = LoganSquare.parse(new String(decryptedSubject),
- DecryptedPushMessage.class);
-
- decryptedPushMessage.setTimestamp(System.currentTimeMillis());
- if (decryptedPushMessage.isDelete()) {
- NotificationUtils.INSTANCE.cancelExistingNotificationWithId(context, signatureVerification.getUserEntity(), decryptedPushMessage.getNotificationId());
- } else if (decryptedPushMessage.isDeleteAll()) {
- NotificationUtils.INSTANCE.cancelAllNotificationsForAccount(context, signatureVerification.getUserEntity());
- } else {
- credentials = ApiUtils.getCredentials(signatureVerification.getUserEntity().getUsername(),
- signatureVerification.getUserEntity().getToken());
-
- ncApi = retrofit.newBuilder().client(okHttpClient.newBuilder().cookieJar(new
- JavaNetCookieJar(new CookieManager())).build()).build().create(NcApi.class);
-
- boolean hasChatSupport = signatureVerification.getUserEntity().
- hasSpreedFeatureCapability("chat-v2");
-
- boolean shouldShowNotification = decryptedPushMessage.getApp().equals("spreed");
-
- if (shouldShowNotification) {
- Intent intent;
- Bundle bundle = new Bundle();
-
-
- boolean startACall = decryptedPushMessage.getType().equals("call") || !hasChatSupport;
- if (startACall) {
- intent = new Intent(context, MagicCallActivity.class);
- } else {
- intent = new Intent(context, MainActivity.class);
- }
-
- intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
-
- if (!signatureVerification.getUserEntity().hasSpreedFeatureCapability
- ("no-ping")) {
- bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_ID(), decryptedPushMessage.getId());
- } else {
- bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN(), decryptedPushMessage.getId());
- }
-
- bundle.putParcelable(BundleKeys.INSTANCE.getKEY_USER_ENTITY(), signatureVerification.getUserEntity());
-
- bundle.putBoolean(BundleKeys.INSTANCE.getKEY_FROM_NOTIFICATION_START_CALL(),
- startACall);
-
- intent.putExtras(bundle);
-
- switch (decryptedPushMessage.getType()) {
- case "call":
- if (!bundle.containsKey(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN())) {
- context.startActivity(intent);
- } else {
- showNotificationForCallWithNoPing(intent);
- }
- break;
- case "room":
- if (bundle.containsKey(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN())) {
- showNotificationWithObjectData(intent);
- }
- break;
- case "chat":
- if (decryptedPushMessage.getNotificationId() != Long.MIN_VALUE) {
- showNotificationWithObjectData(intent);
- } else {
- showNotification(intent);
- }
- break;
- default:
- break;
- }
-
- }
- }
- }
- } catch (NoSuchAlgorithmException e1) {
- Log.d(TAG, "No proper algorithm to decrypt the message " + e1.getLocalizedMessage());
- } catch (NoSuchPaddingException e1) {
- Log.d(TAG, "No proper padding to decrypt the message " + e1.getLocalizedMessage());
- } catch (InvalidKeyException e1) {
- Log.d(TAG, "Invalid private key " + e1.getLocalizedMessage());
- }
- } catch (Exception exception) {
- Log.d(TAG, "Something went very wrong " + exception.getLocalizedMessage());
+ RingtoneSettings ringtoneSettings = LoganSquare.parse
+ (ringtonePreferencesString, RingtoneSettings.class);
+ soundUri = ringtoneSettings.getRingtoneUri();
+ } catch (IOException exception) {
+ soundUri = Uri.parse("android.resource://" + context.getPackageName() +
+ "/raw/librem_by_feandesign_message");
}
- return Result.success();
+ }
+
+ if (soundUri != null && !ApplicationWideCurrentRoomHolder.getInstance().isInCall() &&
+ (DoNotDisturbUtils.INSTANCE.shouldPlaySound() || importantConversation)) {
+ AudioAttributes.Builder audioAttributesBuilder =
+ new AudioAttributes.Builder().setContentType
+ (AudioAttributes.CONTENT_TYPE_SONIFICATION);
+
+ if (decryptedPushMessage.getType().equals("chat") || decryptedPushMessage.getType()
+ .equals("room")) {
+ audioAttributesBuilder.setUsage(AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_INSTANT);
+ } else {
+ audioAttributesBuilder.setUsage(AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_REQUEST);
+ }
+
+ MediaPlayer mediaPlayer = new MediaPlayer();
+ try {
+ mediaPlayer.setDataSource(context, soundUri);
+ mediaPlayer.setAudioAttributes(audioAttributesBuilder.build());
+
+ mediaPlayer.setOnPreparedListener(mp -> mediaPlayer.start());
+ mediaPlayer.setOnCompletionListener(MediaPlayer::release);
+
+ mediaPlayer.prepareAsync();
+ } catch (IOException e) {
+ Log.e(TAG, "Failed to set data source");
+ }
+ }
+
+ if (DoNotDisturbUtils.INSTANCE.shouldVibrate(appPreferences.getShouldVibrateSetting())
+ || importantConversation) {
+ Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
+
+ if (vibrator != null) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ vibrator.vibrate(VibrationEffect.createOneShot(500, VibrationEffect.DEFAULT_AMPLITUDE));
+ } else {
+ vibrator.vibrate(500);
+ }
+ }
+ }
}
+ }
+
+ @NonNull
+ @Override
+ public Result doWork() {
+ NextcloudTalkApplication.Companion.getSharedApplication()
+ .getComponentApplication()
+ .inject(this);
+
+ context = getApplicationContext();
+ Data data = getInputData();
+ String subject = data.getString(BundleKeys.INSTANCE.getKEY_NOTIFICATION_SUBJECT());
+ String signature = data.getString(BundleKeys.INSTANCE.getKEY_NOTIFICATION_SIGNATURE());
+
+ try {
+ byte[] base64DecodedSubject = Base64.decode(subject, Base64.DEFAULT);
+ byte[] base64DecodedSignature = Base64.decode(signature, Base64.DEFAULT);
+ PushUtils pushUtils = new PushUtils();
+ PrivateKey privateKey = (PrivateKey) pushUtils.readKeyFromFile(false);
+
+ try {
+ signatureVerification = pushUtils.verifySignature(base64DecodedSignature,
+ base64DecodedSubject);
+
+ if (signatureVerification.isSignatureValid()) {
+ Cipher cipher = Cipher.getInstance("RSA/None/PKCS1Padding");
+ cipher.init(Cipher.DECRYPT_MODE, privateKey);
+ byte[] decryptedSubject = cipher.doFinal(base64DecodedSubject);
+ decryptedPushMessage = LoganSquare.parse(new String(decryptedSubject),
+ DecryptedPushMessage.class);
+
+ decryptedPushMessage.setTimestamp(System.currentTimeMillis());
+ if (decryptedPushMessage.isDelete()) {
+ NotificationUtils.INSTANCE.cancelExistingNotificationWithId(context,
+ signatureVerification.getUserEntity(), decryptedPushMessage.getNotificationId());
+ } else if (decryptedPushMessage.isDeleteAll()) {
+ NotificationUtils.INSTANCE.cancelAllNotificationsForAccount(context,
+ signatureVerification.getUserEntity());
+ } else {
+ credentials =
+ ApiUtils.getCredentials(signatureVerification.getUserEntity().getUsername(),
+ signatureVerification.getUserEntity().getToken());
+
+ ncApi = retrofit.newBuilder().client(okHttpClient.newBuilder().cookieJar(new
+ JavaNetCookieJar(new CookieManager())).build()).build().create(NcApi.class);
+
+ boolean hasChatSupport = signatureVerification.getUserEntity().
+ hasSpreedFeatureCapability("chat-v2");
+
+ boolean shouldShowNotification = decryptedPushMessage.getApp().equals("spreed");
+
+ if (shouldShowNotification) {
+ Intent intent;
+ Bundle bundle = new Bundle();
+
+ boolean startACall = decryptedPushMessage.getType().equals("call") || !hasChatSupport;
+ if (startACall) {
+ intent = new Intent(context, MagicCallActivity.class);
+ } else {
+ intent = new Intent(context, MainActivity.class);
+ }
+
+ intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
+
+ if (!signatureVerification.getUserEntity().hasSpreedFeatureCapability
+ ("no-ping")) {
+ bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_ID(),
+ decryptedPushMessage.getId());
+ } else {
+ bundle.putString(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN(),
+ decryptedPushMessage.getId());
+ }
+
+ bundle.putParcelable(BundleKeys.INSTANCE.getKEY_USER_ENTITY(),
+ signatureVerification.getUserEntity());
+
+ bundle.putBoolean(BundleKeys.INSTANCE.getKEY_FROM_NOTIFICATION_START_CALL(),
+ startACall);
+
+ intent.putExtras(bundle);
+
+ switch (decryptedPushMessage.getType()) {
+ case "call":
+ if (!bundle.containsKey(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN())) {
+ context.startActivity(intent);
+ } else {
+ showNotificationForCallWithNoPing(intent);
+ }
+ break;
+ case "room":
+ if (bundle.containsKey(BundleKeys.INSTANCE.getKEY_ROOM_TOKEN())) {
+ showNotificationWithObjectData(intent);
+ }
+ break;
+ case "chat":
+ if (decryptedPushMessage.getNotificationId() != Long.MIN_VALUE) {
+ showNotificationWithObjectData(intent);
+ } else {
+ showNotification(intent);
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ }
+ } catch (NoSuchAlgorithmException e1) {
+ Log.d(TAG, "No proper algorithm to decrypt the message " + e1.getLocalizedMessage());
+ } catch (NoSuchPaddingException e1) {
+ Log.d(TAG, "No proper padding to decrypt the message " + e1.getLocalizedMessage());
+ } catch (InvalidKeyException e1) {
+ Log.d(TAG, "Invalid private key " + e1.getLocalizedMessage());
+ }
+ } catch (Exception exception) {
+ Log.d(TAG, "Something went very wrong " + exception.getLocalizedMessage());
+ }
+ return Result.success();
+ }
}
diff --git a/presentation/src/main/java/com/nextcloud/talk/jobs/ShareOperationWorker.java b/presentation/src/main/java/com/nextcloud/talk/jobs/ShareOperationWorker.java
index 908fcebc0..44b45113d 100644
--- a/presentation/src/main/java/com/nextcloud/talk/jobs/ShareOperationWorker.java
+++ b/presentation/src/main/java/com/nextcloud/talk/jobs/ShareOperationWorker.java
@@ -35,11 +35,10 @@ import com.nextcloud.talk.utils.database.user.UserUtils;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
-
-import javax.inject.Inject;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import javax.inject.Inject;
@AutoInjector(NextcloudTalkApplication.class)
public class ShareOperationWorker extends Worker {
diff --git a/presentation/src/main/java/com/nextcloud/talk/jobs/SignalingSettingsWorker.java b/presentation/src/main/java/com/nextcloud/talk/jobs/SignalingSettingsWorker.java
index fa674aee9..893e7fcf6 100644
--- a/presentation/src/main/java/com/nextcloud/talk/jobs/SignalingSettingsWorker.java
+++ b/presentation/src/main/java/com/nextcloud/talk/jobs/SignalingSettingsWorker.java
@@ -23,26 +23,29 @@ package com.nextcloud.talk.jobs;
import android.content.Context;
import android.util.Log;
import androidx.annotation.NonNull;
-import androidx.work.*;
+import androidx.work.Data;
+import androidx.work.OneTimeWorkRequest;
+import androidx.work.WorkManager;
+import androidx.work.Worker;
+import androidx.work.WorkerParameters;
import autodagger.AutoInjector;
import com.bluelinelabs.logansquare.LoganSquare;
+import com.nextcloud.talk.models.ExternalSignalingServer;
+import com.nextcloud.talk.models.json.signaling.settings.SignalingSettingsOverall;
import com.nextcloud.talk.api.NcApi;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.events.EventStatus;
-import com.nextcloud.data.models.ExternalSignalingServer;
import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.data.models.json.signaling.settings.SignalingSettingsOverall;
import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.bundle.BundleKeys;
import com.nextcloud.talk.utils.database.user.UserUtils;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
-import org.greenrobot.eventbus.EventBus;
-
-import javax.inject.Inject;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import javax.inject.Inject;
+import org.greenrobot.eventbus.EventBus;
@AutoInjector(NextcloudTalkApplication.class)
public class SignalingSettingsWorker extends Worker {
diff --git a/presentation/src/main/java/com/nextcloud/talk/jobs/WebsocketConnectionsWorker.java b/presentation/src/main/java/com/nextcloud/talk/jobs/WebsocketConnectionsWorker.java
index 55c789c56..e5991b56d 100644
--- a/presentation/src/main/java/com/nextcloud/talk/jobs/WebsocketConnectionsWorker.java
+++ b/presentation/src/main/java/com/nextcloud/talk/jobs/WebsocketConnectionsWorker.java
@@ -29,15 +29,14 @@ import androidx.work.Worker;
import androidx.work.WorkerParameters;
import autodagger.AutoInjector;
import com.bluelinelabs.logansquare.LoganSquare;
+import com.nextcloud.talk.models.ExternalSignalingServer;
import com.nextcloud.talk.application.NextcloudTalkApplication;
-import com.nextcloud.data.models.ExternalSignalingServer;
import com.nextcloud.talk.models.database.UserEntity;
import com.nextcloud.talk.utils.database.user.UserUtils;
import com.nextcloud.talk.webrtc.WebSocketConnectionHelper;
-
-import javax.inject.Inject;
import java.io.IOException;
import java.util.List;
+import javax.inject.Inject;
@AutoInjector(NextcloudTalkApplication.class)
public class WebsocketConnectionsWorker extends Worker {
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/RetrofitBucket.java b/presentation/src/main/java/com/nextcloud/talk/models/RetrofitBucket.java
index 8ea7a07e8..b36ab95b5 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/RetrofitBucket.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/RetrofitBucket.java
@@ -19,11 +19,10 @@
*/
package com.nextcloud.talk.models;
+import java.util.Map;
import lombok.Data;
import org.parceler.Parcel;
-import java.util.Map;
-
@Parcel
@Data
public class RetrofitBucket {
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/database/ArbitraryStorage.java b/presentation/src/main/java/com/nextcloud/talk/models/database/ArbitraryStorage.java
index 4927c2986..5a02d350f 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/database/ArbitraryStorage.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/database/ArbitraryStorage.java
@@ -24,7 +24,6 @@ import android.os.Parcelable;
import io.requery.Entity;
import io.requery.Key;
import io.requery.Persistable;
-
import java.io.Serializable;
@Entity
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/database/ArbitraryStorageEntity.java b/presentation/src/main/java/com/nextcloud/talk/models/database/ArbitraryStorageEntity.java
deleted file mode 100644
index f9fcd425e..000000000
--- a/presentation/src/main/java/com/nextcloud/talk/models/database/ArbitraryStorageEntity.java
+++ /dev/null
@@ -1,287 +0,0 @@
-// Generated file do not edit, generated by io.requery.processor.EntityProcessor
-package com.nextcloud.talk.models.database;
-
-import android.os.Parcel;
-import android.os.Parcelable;
-
-import io.requery.Persistable;
-import io.requery.android.EntityParceler;
-import io.requery.meta.AttributeBuilder;
-import io.requery.meta.NumericAttribute;
-import io.requery.meta.StringAttribute;
-import io.requery.meta.Type;
-import io.requery.meta.TypeBuilder;
-import io.requery.proxy.EntityProxy;
-import io.requery.proxy.LongProperty;
-import io.requery.proxy.Property;
-import io.requery.proxy.PropertyState;
-import io.requery.util.function.Function;
-import io.requery.util.function.Supplier;
-import java.lang.Long;
-import java.lang.Object;
-import java.lang.Override;
-import java.lang.String;
-import javax.annotation.Generated;
-
-@Generated("io.requery.processor.EntityProcessor")
-public class ArbitraryStorageEntity implements ArbitraryStorage, Persistable, Parcelable {
- public static final NumericAttribute ACCOUNT_IDENTIFIER =
- new AttributeBuilder("accountIdentifier", long.class)
- .setProperty(new LongProperty() {
- @Override
- public Long get(ArbitraryStorageEntity entity) {
- return entity.accountIdentifier;
- }
-
- @Override
- public void set(ArbitraryStorageEntity entity, Long value) {
- entity.accountIdentifier = value;
- }
-
- @Override
- public long getLong(ArbitraryStorageEntity entity) {
- return entity.accountIdentifier;
- }
-
- @Override
- public void setLong(ArbitraryStorageEntity entity, long value) {
- entity.accountIdentifier = value;
- }
- })
- .setPropertyName("getAccountIdentifier")
- .setPropertyState(new Property() {
- @Override
- public PropertyState get(ArbitraryStorageEntity entity) {
- return entity.$accountIdentifier_state;
- }
-
- @Override
- public void set(ArbitraryStorageEntity entity, PropertyState value) {
- entity.$accountIdentifier_state = value;
- }
- })
- .setKey(true)
- .setGenerated(false)
- .setReadOnly(false)
- .setLazy(false)
- .setNullable(false)
- .setUnique(false)
- .buildNumeric();
-
- public static final StringAttribute KEY =
- new AttributeBuilder("key", String.class)
- .setProperty(new Property() {
- @Override
- public String get(ArbitraryStorageEntity entity) {
- return entity.key;
- }
-
- @Override
- public void set(ArbitraryStorageEntity entity, String value) {
- entity.key = value;
- }
- })
- .setPropertyName("getKey")
- .setPropertyState(new Property() {
- @Override
- public PropertyState get(ArbitraryStorageEntity entity) {
- return entity.$key_state;
- }
-
- @Override
- public void set(ArbitraryStorageEntity entity, PropertyState value) {
- entity.$key_state = value;
- }
- })
- .setGenerated(false)
- .setReadOnly(false)
- .setLazy(false)
- .setNullable(true)
- .setUnique(false)
- .buildString();
-
- public static final StringAttribute OBJECT =
- new AttributeBuilder("object", String.class)
- .setProperty(new Property() {
- @Override
- public String get(ArbitraryStorageEntity entity) {
- return entity.object;
- }
-
- @Override
- public void set(ArbitraryStorageEntity entity, String value) {
- entity.object = value;
- }
- })
- .setPropertyName("getObject")
- .setPropertyState(new Property() {
- @Override
- public PropertyState get(ArbitraryStorageEntity entity) {
- return entity.$object_state;
- }
-
- @Override
- public void set(ArbitraryStorageEntity entity, PropertyState value) {
- entity.$object_state = value;
- }
- })
- .setGenerated(false)
- .setReadOnly(false)
- .setLazy(false)
- .setNullable(true)
- .setUnique(false)
- .buildString();
-
- public static final StringAttribute VALUE =
- new AttributeBuilder("value", String.class)
- .setProperty(new Property() {
- @Override
- public String get(ArbitraryStorageEntity entity) {
- return entity.value;
- }
-
- @Override
- public void set(ArbitraryStorageEntity entity, String value) {
- entity.value = value;
- }
- })
- .setPropertyName("getValue")
- .setPropertyState(new Property() {
- @Override
- public PropertyState get(ArbitraryStorageEntity entity) {
- return entity.$value_state;
- }
-
- @Override
- public void set(ArbitraryStorageEntity entity, PropertyState value) {
- entity.$value_state = value;
- }
- })
- .setGenerated(false)
- .setReadOnly(false)
- .setLazy(false)
- .setNullable(true)
- .setUnique(false)
- .buildString();
-
- public static final Type $TYPE = new TypeBuilder(ArbitraryStorageEntity.class, "ArbitraryStorage")
- .setBaseType(ArbitraryStorage.class)
- .setCacheable(true)
- .setImmutable(false)
- .setReadOnly(false)
- .setStateless(false)
- .setView(false)
- .setFactory(new Supplier() {
- @Override
- public ArbitraryStorageEntity get() {
- return new ArbitraryStorageEntity();
- }
- })
- .setProxyProvider(new Function>() {
- @Override
- public EntityProxy apply(ArbitraryStorageEntity entity) {
- return entity.$proxy;
- }
- })
- .addAttribute(ACCOUNT_IDENTIFIER)
- .addAttribute(VALUE)
- .addAttribute(OBJECT)
- .addAttribute(KEY)
- .build();
-
- public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
- @Override
- public ArbitraryStorageEntity createFromParcel(Parcel source) {
- return PARCELER.readFromParcel(source);
- }
-
- @Override
- public ArbitraryStorageEntity[] newArray(int size) {
- return new ArbitraryStorageEntity[size];
- }
- };
-
- static final EntityParceler PARCELER = new EntityParceler($TYPE);
-
- private PropertyState $accountIdentifier_state;
-
- private PropertyState $key_state;
-
- private PropertyState $object_state;
-
- private PropertyState $value_state;
-
- private long accountIdentifier;
-
- private String key;
-
- private String object;
-
- private String value;
-
- private final transient EntityProxy $proxy = new EntityProxy(this, $TYPE);
-
- public ArbitraryStorageEntity() {
- }
-
- @Override
- public long getAccountIdentifier() {
- return $proxy.get(ACCOUNT_IDENTIFIER);
- }
-
- public void setAccountIdentifier(long accountIdentifier) {
- $proxy.set(ACCOUNT_IDENTIFIER, accountIdentifier);
- }
-
- @Override
- public String getKey() {
- return $proxy.get(KEY);
- }
-
- public void setKey(String key) {
- $proxy.set(KEY, key);
- }
-
- @Override
- public String getObject() {
- return $proxy.get(OBJECT);
- }
-
- public void setObject(String object) {
- $proxy.set(OBJECT, object);
- }
-
- @Override
- public String getValue() {
- return $proxy.get(VALUE);
- }
-
- public void setValue(String value) {
- $proxy.set(VALUE, value);
- }
-
- @Override
- public boolean equals(Object obj) {
- return obj instanceof ArbitraryStorageEntity && ((ArbitraryStorageEntity)obj).$proxy.equals(this.$proxy);
- }
-
- @Override
- public int hashCode() {
- return $proxy.hashCode();
- }
-
- @Override
- public String toString() {
- return $proxy.toString();
- }
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- PARCELER.writeToParcel(this, dest);
- }
-}
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/database/Models.java b/presentation/src/main/java/com/nextcloud/talk/models/database/Models.java
deleted file mode 100644
index e7444aa53..000000000
--- a/presentation/src/main/java/com/nextcloud/talk/models/database/Models.java
+++ /dev/null
@@ -1,17 +0,0 @@
-// Generated file do not edit, generated by io.requery.processor.EntityProcessor
-package com.nextcloud.talk.models.database;
-
-import io.requery.meta.EntityModel;
-import io.requery.meta.EntityModelBuilder;
-import javax.annotation.Generated;
-
-@Generated("io.requery.processor.EntityProcessor")
-public class Models {
- public static final EntityModel DEFAULT = new EntityModelBuilder("default")
- .addType(UserEntity.$TYPE)
- .addType(ArbitraryStorageEntity.$TYPE)
- .build();
-
- private Models() {
- }
-}
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/database/User.java b/presentation/src/main/java/com/nextcloud/talk/models/database/User.java
index 0bafe3f5f..dbc42879a 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/database/User.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/database/User.java
@@ -22,12 +22,11 @@ package com.nextcloud.talk.models.database;
import android.os.Parcelable;
import android.util.Log;
import com.bluelinelabs.logansquare.LoganSquare;
-import com.nextcloud.data.models.json.capabilities.Capabilities;
+import com.nextcloud.talk.models.json.capabilities.Capabilities;
import io.requery.Entity;
import io.requery.Generated;
import io.requery.Key;
import io.requery.Persistable;
-
import java.io.IOException;
import java.io.Serializable;
import java.util.HashMap;
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/database/UserEntity.java b/presentation/src/main/java/com/nextcloud/talk/models/database/UserEntity.java
deleted file mode 100644
index 939de13bb..000000000
--- a/presentation/src/main/java/com/nextcloud/talk/models/database/UserEntity.java
+++ /dev/null
@@ -1,674 +0,0 @@
-// Generated file do not edit, generated by io.requery.processor.EntityProcessor
-package com.nextcloud.talk.models.database;
-
-import android.os.Parcel;
-import android.os.Parcelable;
-
-import io.requery.Persistable;
-import io.requery.android.EntityParceler;
-import io.requery.meta.AttributeBuilder;
-import io.requery.meta.NumericAttribute;
-import io.requery.meta.QueryAttribute;
-import io.requery.meta.StringAttribute;
-import io.requery.meta.Type;
-import io.requery.meta.TypeBuilder;
-import io.requery.proxy.BooleanProperty;
-import io.requery.proxy.EntityProxy;
-import io.requery.proxy.LongProperty;
-import io.requery.proxy.Property;
-import io.requery.proxy.PropertyState;
-import io.requery.util.function.Function;
-import io.requery.util.function.Supplier;
-import java.lang.Boolean;
-import java.lang.Long;
-import java.lang.Object;
-import java.lang.Override;
-import java.lang.String;
-import javax.annotation.Generated;
-
-@Generated("io.requery.processor.EntityProcessor")
-public class UserEntity implements User, Persistable, Parcelable {
- public static final NumericAttribute ID =
- new AttributeBuilder("id", long.class)
- .setProperty(new LongProperty() {
- @Override
- public Long get(UserEntity entity) {
- return entity.id;
- }
-
- @Override
- public void set(UserEntity entity, Long value) {
- entity.id = value;
- }
-
- @Override
- public long getLong(UserEntity entity) {
- return entity.id;
- }
-
- @Override
- public void setLong(UserEntity entity, long value) {
- entity.id = value;
- }
- })
- .setPropertyName("getId")
- .setPropertyState(new Property() {
- @Override
- public PropertyState get(UserEntity entity) {
- return entity.$id_state;
- }
-
- @Override
- public void set(UserEntity entity, PropertyState value) {
- entity.$id_state = value;
- }
- })
- .setKey(true)
- .setGenerated(true)
- .setReadOnly(true)
- .setLazy(false)
- .setNullable(false)
- .setUnique(false)
- .buildNumeric();
-
- public static final StringAttribute USER_ID =
- new AttributeBuilder("userId", String.class)
- .setProperty(new Property() {
- @Override
- public String get(UserEntity entity) {
- return entity.userId;
- }
-
- @Override
- public void set(UserEntity entity, String value) {
- entity.userId = value;
- }
- })
- .setPropertyName("getUserId")
- .setPropertyState(new Property() {
- @Override
- public PropertyState get(UserEntity entity) {
- return entity.$userId_state;
- }
-
- @Override
- public void set(UserEntity entity, PropertyState value) {
- entity.$userId_state = value;
- }
- })
- .setGenerated(false)
- .setReadOnly(false)
- .setLazy(false)
- .setNullable(true)
- .setUnique(false)
- .buildString();
-
- public static final StringAttribute USERNAME =
- new AttributeBuilder("username", String.class)
- .setProperty(new Property() {
- @Override
- public String get(UserEntity entity) {
- return entity.username;
- }
-
- @Override
- public void set(UserEntity entity, String value) {
- entity.username = value;
- }
- })
- .setPropertyName("getUsername")
- .setPropertyState(new Property() {
- @Override
- public PropertyState get(UserEntity entity) {
- return entity.$username_state;
- }
-
- @Override
- public void set(UserEntity entity, PropertyState value) {
- entity.$username_state = value;
- }
- })
- .setGenerated(false)
- .setReadOnly(false)
- .setLazy(false)
- .setNullable(true)
- .setUnique(false)
- .buildString();
-
- public static final StringAttribute BASE_URL =
- new AttributeBuilder("baseUrl", String.class)
- .setProperty(new Property() {
- @Override
- public String get(UserEntity entity) {
- return entity.baseUrl;
- }
-
- @Override
- public void set(UserEntity entity, String value) {
- entity.baseUrl = value;
- }
- })
- .setPropertyName("getBaseUrl")
- .setPropertyState(new Property() {
- @Override
- public PropertyState get(UserEntity entity) {
- return entity.$baseUrl_state;
- }
-
- @Override
- public void set(UserEntity entity, PropertyState value) {
- entity.$baseUrl_state = value;
- }
- })
- .setGenerated(false)
- .setReadOnly(false)
- .setLazy(false)
- .setNullable(true)
- .setUnique(false)
- .buildString();
-
- public static final StringAttribute TOKEN =
- new AttributeBuilder("token", String.class)
- .setProperty(new Property() {
- @Override
- public String get(UserEntity entity) {
- return entity.token;
- }
-
- @Override
- public void set(UserEntity entity, String value) {
- entity.token = value;
- }
- })
- .setPropertyName("getToken")
- .setPropertyState(new Property() {
- @Override
- public PropertyState get(UserEntity entity) {
- return entity.$token_state;
- }
-
- @Override
- public void set(UserEntity entity, PropertyState value) {
- entity.$token_state = value;
- }
- })
- .setGenerated(false)
- .setReadOnly(false)
- .setLazy(false)
- .setNullable(true)
- .setUnique(false)
- .buildString();
-
- public static final StringAttribute DISPLAY_NAME =
- new AttributeBuilder("displayName", String.class)
- .setProperty(new Property() {
- @Override
- public String get(UserEntity entity) {
- return entity.displayName;
- }
-
- @Override
- public void set(UserEntity entity, String value) {
- entity.displayName = value;
- }
- })
- .setPropertyName("getDisplayName")
- .setPropertyState(new Property() {
- @Override
- public PropertyState get(UserEntity entity) {
- return entity.$displayName_state;
- }
-
- @Override
- public void set(UserEntity entity, PropertyState value) {
- entity.$displayName_state = value;
- }
- })
- .setGenerated(false)
- .setReadOnly(false)
- .setLazy(false)
- .setNullable(true)
- .setUnique(false)
- .buildString();
-
- public static final StringAttribute PUSH_CONFIGURATION_STATE =
- new AttributeBuilder("pushConfigurationState", String.class)
- .setProperty(new Property() {
- @Override
- public String get(UserEntity entity) {
- return entity.pushConfigurationState;
- }
-
- @Override
- public void set(UserEntity entity, String value) {
- entity.pushConfigurationState = value;
- }
- })
- .setPropertyName("getPushConfigurationState")
- .setPropertyState(new Property() {
- @Override
- public PropertyState get(UserEntity entity) {
- return entity.$pushConfigurationState_state;
- }
-
- @Override
- public void set(UserEntity entity, PropertyState value) {
- entity.$pushConfigurationState_state = value;
- }
- })
- .setGenerated(false)
- .setReadOnly(false)
- .setLazy(false)
- .setNullable(true)
- .setUnique(false)
- .buildString();
-
- public static final StringAttribute CAPABILITIES =
- new AttributeBuilder("capabilities", String.class)
- .setProperty(new Property() {
- @Override
- public String get(UserEntity entity) {
- return entity.capabilities;
- }
-
- @Override
- public void set(UserEntity entity, String value) {
- entity.capabilities = value;
- }
- })
- .setPropertyName("getCapabilities")
- .setPropertyState(new Property() {
- @Override
- public PropertyState get(UserEntity entity) {
- return entity.$capabilities_state;
- }
-
- @Override
- public void set(UserEntity entity, PropertyState value) {
- entity.$capabilities_state = value;
- }
- })
- .setGenerated(false)
- .setReadOnly(false)
- .setLazy(false)
- .setNullable(true)
- .setUnique(false)
- .buildString();
-
- public static final StringAttribute CLIENT_CERTIFICATE =
- new AttributeBuilder("clientCertificate", String.class)
- .setProperty(new Property() {
- @Override
- public String get(UserEntity entity) {
- return entity.clientCertificate;
- }
-
- @Override
- public void set(UserEntity entity, String value) {
- entity.clientCertificate = value;
- }
- })
- .setPropertyName("getClientCertificate")
- .setPropertyState(new Property() {
- @Override
- public PropertyState get(UserEntity entity) {
- return entity.$clientCertificate_state;
- }
-
- @Override
- public void set(UserEntity entity, PropertyState value) {
- entity.$clientCertificate_state = value;
- }
- })
- .setGenerated(false)
- .setReadOnly(false)
- .setLazy(false)
- .setNullable(true)
- .setUnique(false)
- .buildString();
-
- public static final StringAttribute EXTERNAL_SIGNALING_SERVER =
- new AttributeBuilder("externalSignalingServer", String.class)
- .setProperty(new Property() {
- @Override
- public String get(UserEntity entity) {
- return entity.externalSignalingServer;
- }
-
- @Override
- public void set(UserEntity entity, String value) {
- entity.externalSignalingServer = value;
- }
- })
- .setPropertyName("getExternalSignalingServer")
- .setPropertyState(new Property() {
- @Override
- public PropertyState get(UserEntity entity) {
- return entity.$externalSignalingServer_state;
- }
-
- @Override
- public void set(UserEntity entity, PropertyState value) {
- entity.$externalSignalingServer_state = value;
- }
- })
- .setGenerated(false)
- .setReadOnly(false)
- .setLazy(false)
- .setNullable(true)
- .setUnique(false)
- .buildString();
-
- public static final QueryAttribute CURRENT =
- new AttributeBuilder("current", boolean.class)
- .setProperty(new BooleanProperty() {
- @Override
- public Boolean get(UserEntity entity) {
- return entity.current;
- }
-
- @Override
- public void set(UserEntity entity, Boolean value) {
- entity.current = value;
- }
-
- @Override
- public boolean getBoolean(UserEntity entity) {
- return entity.current;
- }
-
- @Override
- public void setBoolean(UserEntity entity, boolean value) {
- entity.current = value;
- }
- })
- .setPropertyName("getCurrent")
- .setPropertyState(new Property() {
- @Override
- public PropertyState get(UserEntity entity) {
- return entity.$current_state;
- }
-
- @Override
- public void set(UserEntity entity, PropertyState value) {
- entity.$current_state = value;
- }
- })
- .setGenerated(false)
- .setReadOnly(false)
- .setLazy(false)
- .setNullable(false)
- .setUnique(false)
- .build();
-
- public static final QueryAttribute SCHEDULED_FOR_DELETION =
- new AttributeBuilder("scheduledForDeletion", boolean.class)
- .setProperty(new BooleanProperty() {
- @Override
- public Boolean get(UserEntity entity) {
- return entity.scheduledForDeletion;
- }
-
- @Override
- public void set(UserEntity entity, Boolean value) {
- entity.scheduledForDeletion = value;
- }
-
- @Override
- public boolean getBoolean(UserEntity entity) {
- return entity.scheduledForDeletion;
- }
-
- @Override
- public void setBoolean(UserEntity entity, boolean value) {
- entity.scheduledForDeletion = value;
- }
- })
- .setPropertyName("getScheduledForDeletion")
- .setPropertyState(new Property() {
- @Override
- public PropertyState get(UserEntity entity) {
- return entity.$scheduledForDeletion_state;
- }
-
- @Override
- public void set(UserEntity entity, PropertyState value) {
- entity.$scheduledForDeletion_state = value;
- }
- })
- .setGenerated(false)
- .setReadOnly(false)
- .setLazy(false)
- .setNullable(false)
- .setUnique(false)
- .build();
-
- public static final Type $TYPE = new TypeBuilder(UserEntity.class, "User")
- .setBaseType(User.class)
- .setCacheable(true)
- .setImmutable(false)
- .setReadOnly(false)
- .setStateless(false)
- .setView(false)
- .setFactory(new Supplier() {
- @Override
- public UserEntity get() {
- return new UserEntity();
- }
- })
- .setProxyProvider(new Function>() {
- @Override
- public EntityProxy apply(UserEntity entity) {
- return entity.$proxy;
- }
- })
- .addAttribute(PUSH_CONFIGURATION_STATE)
- .addAttribute(CAPABILITIES)
- .addAttribute(USER_ID)
- .addAttribute(USERNAME)
- .addAttribute(ID)
- .addAttribute(CLIENT_CERTIFICATE)
- .addAttribute(EXTERNAL_SIGNALING_SERVER)
- .addAttribute(BASE_URL)
- .addAttribute(TOKEN)
- .addAttribute(DISPLAY_NAME)
- .addAttribute(CURRENT)
- .addAttribute(SCHEDULED_FOR_DELETION)
- .build();
-
- public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
- @Override
- public UserEntity createFromParcel(Parcel source) {
- return PARCELER.readFromParcel(source);
- }
-
- @Override
- public UserEntity[] newArray(int size) {
- return new UserEntity[size];
- }
- };
-
- static final EntityParceler PARCELER = new EntityParceler($TYPE);
-
- private PropertyState $id_state;
-
- private PropertyState $userId_state;
-
- private PropertyState $username_state;
-
- private PropertyState $baseUrl_state;
-
- private PropertyState $token_state;
-
- private PropertyState $displayName_state;
-
- private PropertyState $pushConfigurationState_state;
-
- private PropertyState $capabilities_state;
-
- private PropertyState $clientCertificate_state;
-
- private PropertyState $externalSignalingServer_state;
-
- private PropertyState $current_state;
-
- private PropertyState $scheduledForDeletion_state;
-
- private long id;
-
- private String userId;
-
- private String username;
-
- private String baseUrl;
-
- private String token;
-
- private String displayName;
-
- private String pushConfigurationState;
-
- private String capabilities;
-
- private String clientCertificate;
-
- private String externalSignalingServer;
-
- private boolean current;
-
- private boolean scheduledForDeletion;
-
- private final transient EntityProxy $proxy = new EntityProxy(this, $TYPE);
-
- public UserEntity() {
- }
-
- @Override
- public long getId() {
- return $proxy.get(ID);
- }
-
- @Override
- public String getUserId() {
- return $proxy.get(USER_ID);
- }
-
- public void setUserId(String userId) {
- $proxy.set(USER_ID, userId);
- }
-
- @Override
- public String getUsername() {
- return $proxy.get(USERNAME);
- }
-
- public void setUsername(String username) {
- $proxy.set(USERNAME, username);
- }
-
- @Override
- public String getBaseUrl() {
- return $proxy.get(BASE_URL);
- }
-
- public void setBaseUrl(String baseUrl) {
- $proxy.set(BASE_URL, baseUrl);
- }
-
- @Override
- public String getToken() {
- return $proxy.get(TOKEN);
- }
-
- public void setToken(String token) {
- $proxy.set(TOKEN, token);
- }
-
- @Override
- public String getDisplayName() {
- return $proxy.get(DISPLAY_NAME);
- }
-
- public void setDisplayName(String displayName) {
- $proxy.set(DISPLAY_NAME, displayName);
- }
-
- @Override
- public String getPushConfigurationState() {
- return $proxy.get(PUSH_CONFIGURATION_STATE);
- }
-
- public void setPushConfigurationState(String pushConfigurationState) {
- $proxy.set(PUSH_CONFIGURATION_STATE, pushConfigurationState);
- }
-
- @Override
- public String getCapabilities() {
- return $proxy.get(CAPABILITIES);
- }
-
- public void setCapabilities(String capabilities) {
- $proxy.set(CAPABILITIES, capabilities);
- }
-
- @Override
- public String getClientCertificate() {
- return $proxy.get(CLIENT_CERTIFICATE);
- }
-
- public void setClientCertificate(String clientCertificate) {
- $proxy.set(CLIENT_CERTIFICATE, clientCertificate);
- }
-
- @Override
- public String getExternalSignalingServer() {
- return $proxy.get(EXTERNAL_SIGNALING_SERVER);
- }
-
- public void setExternalSignalingServer(String externalSignalingServer) {
- $proxy.set(EXTERNAL_SIGNALING_SERVER, externalSignalingServer);
- }
-
- @Override
- public boolean getCurrent() {
- return $proxy.get(CURRENT);
- }
-
- public void setCurrent(boolean current) {
- $proxy.set(CURRENT, current);
- }
-
- @Override
- public boolean getScheduledForDeletion() {
- return $proxy.get(SCHEDULED_FOR_DELETION);
- }
-
- public void setScheduledForDeletion(boolean scheduledForDeletion) {
- $proxy.set(SCHEDULED_FOR_DELETION, scheduledForDeletion);
- }
-
- @Override
- public boolean equals(Object obj) {
- return obj instanceof UserEntity && ((UserEntity)obj).$proxy.equals(this.$proxy);
- }
-
- @Override
- public int hashCode() {
- return $proxy.hashCode();
- }
-
- @Override
- public String toString() {
- return $proxy.toString();
- }
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- PARCELER.writeToParcel(this, dest);
- }
-}
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/autocomplete/AutocompleteOCS.java b/presentation/src/main/java/com/nextcloud/talk/models/json/autocomplete/AutocompleteOCS.java
index 934911627..e75e8fd98 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/autocomplete/AutocompleteOCS.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/autocomplete/AutocompleteOCS.java
@@ -23,11 +23,10 @@ package com.nextcloud.talk.models.json.autocomplete;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
import com.nextcloud.talk.models.json.generic.GenericOCS;
+import java.util.List;
import lombok.Data;
import org.parceler.Parcel;
-import java.util.List;
-
@Parcel
@Data
@JsonObject
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/capabilities/Capabilities.java b/presentation/src/main/java/com/nextcloud/talk/models/json/capabilities/Capabilities.java
index a96787056..fb93a7aef 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/capabilities/Capabilities.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/capabilities/Capabilities.java
@@ -22,11 +22,10 @@ package com.nextcloud.talk.models.json.capabilities;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
-import lombok.Data;
-import org.parceler.Parcel;
-
import java.util.HashMap;
import java.util.List;
+import lombok.Data;
+import org.parceler.Parcel;
@Parcel
@Data
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/capabilities/NotificationsCapability.java b/presentation/src/main/java/com/nextcloud/talk/models/json/capabilities/NotificationsCapability.java
index 1e413cfee..04716c0ba 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/capabilities/NotificationsCapability.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/capabilities/NotificationsCapability.java
@@ -22,11 +22,10 @@ package com.nextcloud.talk.models.json.capabilities;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
+import java.util.List;
import lombok.Data;
import org.parceler.Parcel;
-import java.util.List;
-
@Parcel
@Data
@JsonObject
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/capabilities/SpreedCapability.java b/presentation/src/main/java/com/nextcloud/talk/models/json/capabilities/SpreedCapability.java
index 8a15515f6..10764c0fc 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/capabilities/SpreedCapability.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/capabilities/SpreedCapability.java
@@ -22,11 +22,10 @@ package com.nextcloud.talk.models.json.capabilities;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
-import lombok.Data;
-import org.parceler.Parcel;
-
import java.util.HashMap;
import java.util.List;
+import lombok.Data;
+import org.parceler.Parcel;
@Parcel
@Data
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatMessage.java b/presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatMessage.java
index 798974d10..73654e79f 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatMessage.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatMessage.java
@@ -33,11 +33,14 @@ import com.nextcloud.talk.utils.TextMatchers;
import com.stfalcon.chatkit.commons.models.IMessage;
import com.stfalcon.chatkit.commons.models.IUser;
import com.stfalcon.chatkit.commons.models.MessageContentType;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import lombok.Data;
import org.parceler.Parcel;
-import java.util.*;
-
@Parcel
@Data
@JsonObject
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatOCS.java b/presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatOCS.java
index b5cf0cd7d..c43ae2780 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatOCS.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/chat/ChatOCS.java
@@ -22,11 +22,10 @@ package com.nextcloud.talk.models.json.chat;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
import com.nextcloud.talk.models.json.generic.GenericOCS;
+import java.util.List;
import lombok.Data;
import org.parceler.Parcel;
-import java.util.List;
-
@Data
@Parcel
@JsonObject
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/conversations/Conversation.java b/presentation/src/main/java/com/nextcloud/talk/models/json/conversations/Conversation.java
index a63dd149f..f974a32e6 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/conversations/Conversation.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/conversations/Conversation.java
@@ -21,7 +21,6 @@
package com.nextcloud.talk.models.json.conversations;
import android.content.res.Resources;
-
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
import com.nextcloud.talk.R;
@@ -34,12 +33,9 @@ import com.nextcloud.talk.models.json.converters.EnumParticipantTypeConverter;
import com.nextcloud.talk.models.json.converters.EnumReadOnlyConversationConverter;
import com.nextcloud.talk.models.json.converters.EnumRoomTypeConverter;
import com.nextcloud.talk.models.json.participants.Participant;
-
-import org.parceler.Parcel;
-
import java.util.HashMap;
-
import lombok.Data;
+import org.parceler.Parcel;
@Parcel
@Data
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/conversations/RoomsOCS.java b/presentation/src/main/java/com/nextcloud/talk/models/json/conversations/RoomsOCS.java
index 2aa2b35a6..070242718 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/conversations/RoomsOCS.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/conversations/RoomsOCS.java
@@ -23,11 +23,10 @@ package com.nextcloud.talk.models.json.conversations;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
import com.nextcloud.talk.models.json.generic.GenericOCS;
+import java.util.List;
import lombok.Data;
import org.parceler.Parcel;
-import java.util.List;
-
@Data
@Parcel
@JsonObject
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/converters/EnumSystemMessageTypeConverter.kt b/presentation/src/main/java/com/nextcloud/talk/models/json/converters/EnumSystemMessageTypeConverter.kt
index 48205eff3..bca1a8066 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/converters/EnumSystemMessageTypeConverter.kt
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/converters/EnumSystemMessageTypeConverter.kt
@@ -22,8 +22,25 @@ package com.nextcloud.talk.models.json.converters
import com.bluelinelabs.logansquare.typeconverters.StringBasedTypeConverter
import com.nextcloud.talk.models.json.chat.ChatMessage
-
-import com.nextcloud.talk.models.json.chat.ChatMessage.SystemMessageType.*
+import com.nextcloud.talk.models.json.chat.ChatMessage.SystemMessageType.CALL_ENDED
+import com.nextcloud.talk.models.json.chat.ChatMessage.SystemMessageType.CALL_JOINED
+import com.nextcloud.talk.models.json.chat.ChatMessage.SystemMessageType.CALL_LEFT
+import com.nextcloud.talk.models.json.chat.ChatMessage.SystemMessageType.CALL_STARTED
+import com.nextcloud.talk.models.json.chat.ChatMessage.SystemMessageType.CONVERSATION_CREATED
+import com.nextcloud.talk.models.json.chat.ChatMessage.SystemMessageType.CONVERSATION_RENAMED
+import com.nextcloud.talk.models.json.chat.ChatMessage.SystemMessageType.DUMMY
+import com.nextcloud.talk.models.json.chat.ChatMessage.SystemMessageType.FILE_SHARED
+import com.nextcloud.talk.models.json.chat.ChatMessage.SystemMessageType.GUESTS_ALLOWED
+import com.nextcloud.talk.models.json.chat.ChatMessage.SystemMessageType.GUESTS_DISALLOWED
+import com.nextcloud.talk.models.json.chat.ChatMessage.SystemMessageType.LOBBY_NONE
+import com.nextcloud.talk.models.json.chat.ChatMessage.SystemMessageType.LOBBY_NON_MODERATORS
+import com.nextcloud.talk.models.json.chat.ChatMessage.SystemMessageType.LOBBY_OPEN_TO_EVERYONE
+import com.nextcloud.talk.models.json.chat.ChatMessage.SystemMessageType.MODERATOR_DEMOTED
+import com.nextcloud.talk.models.json.chat.ChatMessage.SystemMessageType.MODERATOR_PROMOTED
+import com.nextcloud.talk.models.json.chat.ChatMessage.SystemMessageType.PASSWORD_REMOVED
+import com.nextcloud.talk.models.json.chat.ChatMessage.SystemMessageType.PASSWORD_SET
+import com.nextcloud.talk.models.json.chat.ChatMessage.SystemMessageType.USER_ADDED
+import com.nextcloud.talk.models.json.chat.ChatMessage.SystemMessageType.USER_REMOVED
/*
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/converters/LoganSquareJodaTimeConverter.java b/presentation/src/main/java/com/nextcloud/talk/models/json/converters/LoganSquareJodaTimeConverter.java
index 65f5d792a..9e8709224 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/converters/LoganSquareJodaTimeConverter.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/converters/LoganSquareJodaTimeConverter.java
@@ -19,16 +19,12 @@
package com.nextcloud.talk.models.json.converters;
-
import android.util.Log;
-
import com.bluelinelabs.logansquare.typeconverters.TypeConverter;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
-
-import org.joda.time.DateTime;
-
import java.io.IOException;
+import org.joda.time.DateTime;
public class LoganSquareJodaTimeConverter implements TypeConverter {
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/mention/MentionOCS.java b/presentation/src/main/java/com/nextcloud/talk/models/json/mention/MentionOCS.java
index 5180635c1..7883e44ef 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/mention/MentionOCS.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/mention/MentionOCS.java
@@ -22,11 +22,10 @@ package com.nextcloud.talk.models.json.mention;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
import com.nextcloud.talk.models.json.generic.GenericOCS;
+import java.util.List;
import lombok.Data;
import org.parceler.Parcel;
-import java.util.List;
-
@Data
@Parcel
@JsonObject
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/notifications/Notification.java b/presentation/src/main/java/com/nextcloud/talk/models/json/notifications/Notification.java
index e14c5bfd5..ff4b23ca8 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/notifications/Notification.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/notifications/Notification.java
@@ -23,15 +23,11 @@ package com.nextcloud.talk.models.json.notifications;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
import com.nextcloud.talk.models.json.converters.LoganSquareJodaTimeConverter;
-
-import org.joda.time.DateTime;
-import org.parceler.Parcel;
-
-import java.util.Date;
import java.util.HashMap;
import java.util.List;
-
import lombok.Data;
+import org.joda.time.DateTime;
+import org.parceler.Parcel;
@Data
@Parcel
diff --git a/domain/src/test/java/com/nextcloud/domain/ExampleUnitTest.kt b/presentation/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationOverall.java
similarity index 69%
rename from domain/src/test/java/com/nextcloud/domain/ExampleUnitTest.kt
rename to presentation/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationOverall.java
index c8fcd1d0e..c6d319433 100644
--- a/domain/src/test/java/com/nextcloud/domain/ExampleUnitTest.kt
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationOverall.java
@@ -18,20 +18,15 @@
* along with this program. If not, see .
*/
-package com.nextcloud.domain
+package com.nextcloud.talk.models.json.notifications;
-import org.junit.Test
+import com.bluelinelabs.logansquare.annotation.JsonField;
+import com.bluelinelabs.logansquare.annotation.JsonObject;
+import lombok.Data;
-import org.junit.Assert.*
-
-/**
- * Example local unit test, which will execute on the development machine (host).
- *
- * See [testing documentation](http://d.android.com/tools/testing).
- */
-class ExampleUnitTest {
- @Test
- fun addition_isCorrect() {
- assertEquals(4, 2 + 2)
- }
+@Data
+@JsonObject
+public class NotificationOverall {
+ @JsonField(name = "ocs")
+ NotificationOCS ocs;
}
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationsOCS.java b/presentation/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationsOCS.java
index f2e792326..fa7956dc2 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationsOCS.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/notifications/NotificationsOCS.java
@@ -23,11 +23,10 @@ package com.nextcloud.talk.models.json.notifications;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
import com.nextcloud.talk.models.json.generic.GenericOCS;
+import java.util.List;
import lombok.Data;
import org.parceler.Parcel;
-import java.util.List;
-
@Data
@Parcel
@JsonObject
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/participants/AddParticipantOCS.java b/presentation/src/main/java/com/nextcloud/talk/models/json/participants/AddParticipantOCS.java
index 443abdc0d..8402b75e9 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/participants/AddParticipantOCS.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/participants/AddParticipantOCS.java
@@ -22,8 +22,8 @@ package com.nextcloud.talk.models.json.participants;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
-import com.nextcloud.talk.models.json.generic.GenericOCS;
import com.nextcloud.talk.models.json.conversations.Conversation;
+import com.nextcloud.talk.models.json.generic.GenericOCS;
@JsonObject
public class AddParticipantOCS extends GenericOCS {
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/participants/ParticipantsOCS.java b/presentation/src/main/java/com/nextcloud/talk/models/json/participants/ParticipantsOCS.java
index b27fdd088..b1d5a2add 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/participants/ParticipantsOCS.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/participants/ParticipantsOCS.java
@@ -23,11 +23,10 @@ package com.nextcloud.talk.models.json.participants;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
import com.nextcloud.talk.models.json.generic.GenericOCS;
+import java.util.List;
import lombok.Data;
import org.parceler.Parcel;
-import java.util.List;
-
@Parcel
@Data
@JsonObject
diff --git a/data/src/test/java/com/nextcloud/data/ExampleUnitTest.kt b/presentation/src/main/java/com/nextcloud/talk/models/json/push/NotificationUser.java
similarity index 65%
rename from data/src/test/java/com/nextcloud/data/ExampleUnitTest.kt
rename to presentation/src/main/java/com/nextcloud/talk/models/json/push/NotificationUser.java
index 37e9b45e8..81e8e7a46 100644
--- a/data/src/test/java/com/nextcloud/data/ExampleUnitTest.kt
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/push/NotificationUser.java
@@ -1,37 +1,40 @@
/*
* Nextcloud Talk application
- *
+ *
* @author Mario Danic
* Copyright (C) 2017-2019 Mario Danic
- *
+ *
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package com.nextcloud.data
+package com.nextcloud.talk.models.json.push;
-import org.junit.Test
+import com.bluelinelabs.logansquare.annotation.JsonField;
+import com.bluelinelabs.logansquare.annotation.JsonObject;
+import lombok.Data;
+import org.parceler.Parcel;
-import org.junit.Assert.*
+@Data
+@Parcel
+@JsonObject
+public class NotificationUser {
+ @JsonField(name = "type")
+ String type;
-/**
- * Example local unit test, which will execute on the development machine (host).
- *
- * See [testing documentation](http://d.android.com/tools/testing).
- */
-class ExampleUnitTest {
- @Test
- fun addition_isCorrect() {
- assertEquals(4, 2 + 2)
- }
+ @JsonField(name = "id")
+ String id;
+
+ @JsonField(name = "name")
+ String name;
}
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/sharees/ExactSharees.java b/presentation/src/main/java/com/nextcloud/talk/models/json/sharees/ExactSharees.java
index eae480402..b96cda6af 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/sharees/ExactSharees.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/sharees/ExactSharees.java
@@ -22,11 +22,10 @@ package com.nextcloud.talk.models.json.sharees;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
+import java.util.List;
import lombok.Data;
import org.parceler.Parcel;
-import java.util.List;
-
@Parcel
@Data
@JsonObject
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/sharees/SharesData.java b/presentation/src/main/java/com/nextcloud/talk/models/json/sharees/SharesData.java
index 37dd23821..952b235ab 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/sharees/SharesData.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/sharees/SharesData.java
@@ -22,11 +22,10 @@ package com.nextcloud.talk.models.json.sharees;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
+import java.util.List;
import lombok.Data;
import org.parceler.Parcel;
-import java.util.List;
-
@Parcel
@Data
@JsonObject
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/signaling/DataChannelMessageNick.java b/presentation/src/main/java/com/nextcloud/talk/models/json/signaling/DataChannelMessageNick.java
index 4e5cffc20..12e67a60b 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/signaling/DataChannelMessageNick.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/signaling/DataChannelMessageNick.java
@@ -23,11 +23,10 @@ package com.nextcloud.talk.models.json.signaling;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
import com.nextcloud.talk.models.json.converters.ObjectParcelConverter;
+import java.util.HashMap;
import lombok.Data;
import org.parceler.ParcelPropertyConverter;
-import java.util.HashMap;
-
@Data
@JsonObject
public class DataChannelMessageNick {
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/signaling/SignalingOCS.java b/presentation/src/main/java/com/nextcloud/talk/models/json/signaling/SignalingOCS.java
index a8c44dfe2..619fa12cf 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/signaling/SignalingOCS.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/signaling/SignalingOCS.java
@@ -23,9 +23,8 @@ package com.nextcloud.talk.models.json.signaling;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
import com.nextcloud.talk.models.json.generic.GenericOCS;
-import lombok.Data;
-
import java.util.List;
+import lombok.Data;
@Data
@JsonObject
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/signaling/settings/IceServer.java b/presentation/src/main/java/com/nextcloud/talk/models/json/signaling/settings/IceServer.java
index 1bad04a55..6b793a543 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/signaling/settings/IceServer.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/signaling/settings/IceServer.java
@@ -22,9 +22,8 @@ package com.nextcloud.talk.models.json.signaling.settings;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
-import lombok.Data;
-
import java.util.List;
+import lombok.Data;
@Data
@JsonObject
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/signaling/settings/Settings.java b/presentation/src/main/java/com/nextcloud/talk/models/json/signaling/settings/Settings.java
index c07e1a365..a723d4c9d 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/signaling/settings/Settings.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/signaling/settings/Settings.java
@@ -22,9 +22,8 @@ package com.nextcloud.talk.models.json.signaling.settings;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
-import lombok.Data;
-
import java.util.List;
+import lombok.Data;
@Data
@JsonObject
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/websocket/ByeWebSocketMessage.java b/presentation/src/main/java/com/nextcloud/talk/models/json/websocket/ByeWebSocketMessage.java
index 57f5ccee5..a534031ef 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/websocket/ByeWebSocketMessage.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/websocket/ByeWebSocketMessage.java
@@ -22,11 +22,10 @@ package com.nextcloud.talk.models.json.websocket;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
+import java.util.HashMap;
import lombok.Data;
import org.parceler.Parcel;
-import java.util.HashMap;
-
@JsonObject
@Parcel
@Data
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/websocket/EventOverallWebSocketMessage.java b/presentation/src/main/java/com/nextcloud/talk/models/json/websocket/EventOverallWebSocketMessage.java
index c131fce6c..d61f6de9b 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/websocket/EventOverallWebSocketMessage.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/websocket/EventOverallWebSocketMessage.java
@@ -22,11 +22,10 @@ package com.nextcloud.talk.models.json.websocket;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
+import java.util.HashMap;
import lombok.Data;
import org.parceler.Parcel;
-import java.util.HashMap;
-
@Data
@Parcel
@JsonObject
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/websocket/RoomPropertiesWebSocketMessage.java b/presentation/src/main/java/com/nextcloud/talk/models/json/websocket/RoomPropertiesWebSocketMessage.java
index 7e4372a11..15d5b1b15 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/websocket/RoomPropertiesWebSocketMessage.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/websocket/RoomPropertiesWebSocketMessage.java
@@ -22,8 +22,8 @@ package com.nextcloud.talk.models.json.websocket;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
-import com.nextcloud.talk.models.json.converters.EnumRoomTypeConverter;
import com.nextcloud.talk.models.json.conversations.Conversation;
+import com.nextcloud.talk.models.json.converters.EnumRoomTypeConverter;
import lombok.Data;
import org.parceler.Parcel;
diff --git a/presentation/src/main/java/com/nextcloud/talk/models/json/websocket/ServerHelloResponseFeaturesWebSocketMessage.java b/presentation/src/main/java/com/nextcloud/talk/models/json/websocket/ServerHelloResponseFeaturesWebSocketMessage.java
index 7c5927c71..67b3ce3b6 100644
--- a/presentation/src/main/java/com/nextcloud/talk/models/json/websocket/ServerHelloResponseFeaturesWebSocketMessage.java
+++ b/presentation/src/main/java/com/nextcloud/talk/models/json/websocket/ServerHelloResponseFeaturesWebSocketMessage.java
@@ -22,11 +22,10 @@ package com.nextcloud.talk.models.json.websocket;
import com.bluelinelabs.logansquare.annotation.JsonField;
import com.bluelinelabs.logansquare.annotation.JsonObject;
+import java.util.List;
import lombok.Data;
import org.parceler.Parcel;
-import java.util.List;
-
@JsonObject
@Parcel
@Data
diff --git a/presentation/src/main/java/com/nextcloud/talk/features/conversationsList/ConversationsListContract.kt b/presentation/src/main/java/com/nextcloud/talk/newarch/features/conversationsList/ConversationsListContract.kt
similarity index 89%
rename from presentation/src/main/java/com/nextcloud/talk/features/conversationsList/ConversationsListContract.kt
rename to presentation/src/main/java/com/nextcloud/talk/newarch/features/conversationsList/ConversationsListContract.kt
index fbba22a99..755afe5a5 100644
--- a/presentation/src/main/java/com/nextcloud/talk/features/conversationsList/ConversationsListContract.kt
+++ b/presentation/src/main/java/com/nextcloud/talk/newarch/features/conversationsList/ConversationsListContract.kt
@@ -18,9 +18,9 @@
* along with this program. If not, see .
*/
-package com.nextcloud.talk.features.conversationsList
+package com.nextcloud.talk.newarch.conversationsList
-import com.nextcloud.data.models.json.conversations.Conversation
+import com.nextcloud.talk.models.json.conversations.Conversation
class ConversationsListContract {
interface View {
diff --git a/presentation/src/main/java/com/nextcloud/talk/mvp/BaseMvpView.kt b/presentation/src/main/java/com/nextcloud/talk/newarch/mvp/BaseMvpView.kt
similarity index 95%
rename from presentation/src/main/java/com/nextcloud/talk/mvp/BaseMvpView.kt
rename to presentation/src/main/java/com/nextcloud/talk/newarch/mvp/BaseMvpView.kt
index 10a7969ab..25683f96b 100644
--- a/presentation/src/main/java/com/nextcloud/talk/mvp/BaseMvpView.kt
+++ b/presentation/src/main/java/com/nextcloud/talk/newarch/mvp/BaseMvpView.kt
@@ -18,9 +18,8 @@
* along with this program. If not, see .
*/
-package com.nextcloud.talk.mvp
+package com.nextcloud.talk.newarch.conversationsList.mvp
-import android.content.Context
import android.view.View
import androidx.annotation.LayoutRes
import autodagger.AutoInjector
diff --git a/presentation/src/main/java/com/nextcloud/talk/mvp/BasePresenter.kt b/presentation/src/main/java/com/nextcloud/talk/newarch/mvp/BasePresenter.kt
similarity index 95%
rename from presentation/src/main/java/com/nextcloud/talk/mvp/BasePresenter.kt
rename to presentation/src/main/java/com/nextcloud/talk/newarch/mvp/BasePresenter.kt
index 71f9e595e..150d4b1cd 100644
--- a/presentation/src/main/java/com/nextcloud/talk/mvp/BasePresenter.kt
+++ b/presentation/src/main/java/com/nextcloud/talk/newarch/mvp/BasePresenter.kt
@@ -18,7 +18,7 @@
* along with this program. If not, see .
*/
-package com.nextcloud.talk.mvp
+package com.nextcloud.talk.newarch.conversationsList.mvp
import io.reactivex.disposables.CompositeDisposable
diff --git a/presentation/src/main/java/com/nextcloud/talk/mvp/MvpPresenter.kt b/presentation/src/main/java/com/nextcloud/talk/newarch/mvp/MvpPresenter.kt
similarity index 93%
rename from presentation/src/main/java/com/nextcloud/talk/mvp/MvpPresenter.kt
rename to presentation/src/main/java/com/nextcloud/talk/newarch/mvp/MvpPresenter.kt
index 45c0c29fb..1eb140889 100644
--- a/presentation/src/main/java/com/nextcloud/talk/mvp/MvpPresenter.kt
+++ b/presentation/src/main/java/com/nextcloud/talk/newarch/mvp/MvpPresenter.kt
@@ -18,7 +18,7 @@
* along with this program. If not, see .
*/
-package com.nextcloud.talk.mvp
+package com.nextcloud.talk.newarch.conversationsList.mvp
interface MvpPresenter {
fun stop()
diff --git a/presentation/src/main/java/com/nextcloud/talk/presenters/MentionAutocompletePresenter.java b/presentation/src/main/java/com/nextcloud/talk/presenters/MentionAutocompletePresenter.java
index d26a19baa..3e429a69b 100644
--- a/presentation/src/main/java/com/nextcloud/talk/presenters/MentionAutocompletePresenter.java
+++ b/presentation/src/main/java/com/nextcloud/talk/presenters/MentionAutocompletePresenter.java
@@ -25,12 +25,12 @@ import android.view.View;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;
import autodagger.AutoInjector;
+import com.nextcloud.talk.models.json.mention.Mention;
+import com.nextcloud.talk.models.json.mention.MentionOverall;
import com.nextcloud.talk.adapters.items.MentionAutocompleteItem;
import com.nextcloud.talk.api.NcApi;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.data.models.json.mention.Mention;
-import com.nextcloud.data.models.json.mention.MentionOverall;
import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.database.user.UserUtils;
import com.otaliastudios.autocomplete.RecyclerViewPresenter;
@@ -40,10 +40,9 @@ import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
-
-import javax.inject.Inject;
import java.util.ArrayList;
import java.util.List;
+import javax.inject.Inject;
@AutoInjector(NextcloudTalkApplication.class)
public class MentionAutocompletePresenter extends RecyclerViewPresenter implements FlexibleAdapter.OnItemClickListener {
diff --git a/presentation/src/main/java/com/nextcloud/talk/receivers/PackageReplacedReceiver.kt b/presentation/src/main/java/com/nextcloud/talk/receivers/PackageReplacedReceiver.kt
index c0c77303e..232d31322 100644
--- a/presentation/src/main/java/com/nextcloud/talk/receivers/PackageReplacedReceiver.kt
+++ b/presentation/src/main/java/com/nextcloud/talk/receivers/PackageReplacedReceiver.kt
@@ -20,12 +20,10 @@
package com.nextcloud.talk.receivers
-import android.app.NotificationChannelGroup
import android.app.NotificationManager
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
-import android.content.pm.PackageInfo
import android.content.pm.PackageManager
import android.os.Build
import android.util.Log
@@ -34,7 +32,6 @@ import com.nextcloud.talk.application.NextcloudTalkApplication
import com.nextcloud.talk.utils.NotificationUtils
import com.nextcloud.talk.utils.database.user.UserUtils
import com.nextcloud.talk.utils.preferences.AppPreferences
-
import javax.inject.Inject
@AutoInjector(NextcloudTalkApplication::class)
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/AccountUtils.kt b/presentation/src/main/java/com/nextcloud/talk/utils/AccountUtils.kt
index e2173ed2a..b8ce1cd12 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/AccountUtils.kt
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/AccountUtils.kt
@@ -28,11 +28,12 @@ import android.accounts.AccountManager
import android.content.Context
import android.content.pm.PackageManager
import android.util.Log
+import com.nextcloud.talk.models.ImportAccount
import com.nextcloud.talk.R
import com.nextcloud.talk.application.NextcloudTalkApplication
-import com.nextcloud.data.models.ImportAccount
import com.nextcloud.talk.models.database.UserEntity
-import java.util.*
+import java.util.ArrayList
+import java.util.Arrays
object AccountUtils {
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/ApiUtils.java b/presentation/src/main/java/com/nextcloud/talk/utils/ApiUtils.java
index ec967b016..6ed0b0f8d 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/ApiUtils.java
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/ApiUtils.java
@@ -22,15 +22,14 @@ package com.nextcloud.talk.utils;
import android.net.Uri;
import android.text.TextUtils;
import androidx.annotation.DimenRes;
+import com.nextcloud.talk.models.RetrofitBucket;
import com.nextcloud.talk.BuildConfig;
import com.nextcloud.talk.R;
import com.nextcloud.talk.application.NextcloudTalkApplication;
-import com.nextcloud.data.models.RetrofitBucket;
-import okhttp3.Credentials;
-
-import javax.annotation.Nullable;
import java.util.HashMap;
import java.util.Map;
+import javax.annotation.Nullable;
+import okhttp3.Credentials;
public class ApiUtils {
private static String ocsApiVersion = "/ocs/v2.php";
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/DateUtils.kt b/presentation/src/main/java/com/nextcloud/talk/utils/DateUtils.kt
index 20fceb297..883c0e2a3 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/DateUtils.kt
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/DateUtils.kt
@@ -21,8 +21,9 @@
package com.nextcloud.talk.utils
import java.text.DateFormat
-import java.util.*
-
+import java.util.Calendar
+import java.util.Date
+import java.util.Locale
object DateUtils {
fun getLocalDateTimeStringFromTimestamp(timestamp: Long): String {
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/DeviceUtils.java b/presentation/src/main/java/com/nextcloud/talk/utils/DeviceUtils.java
index e53149078..8a67ec13f 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/DeviceUtils.java
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/DeviceUtils.java
@@ -25,7 +25,6 @@ import android.content.Context;
import android.os.Build;
import android.util.Log;
import com.nextcloud.talk.application.NextcloudTalkApplication;
-
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java b/presentation/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java
index 6f848c7a9..cca77b5b7 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/DisplayUtils.java
@@ -51,7 +51,6 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.TextView;
-
import androidx.annotation.ColorInt;
import androidx.annotation.ColorRes;
import androidx.annotation.DrawableRes;
@@ -61,7 +60,6 @@ import androidx.appcompat.widget.AppCompatDrawableManager;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat;
import androidx.emoji.text.EmojiCompat;
-
import com.facebook.common.executors.UiThreadImmediateExecutorService;
import com.facebook.common.references.CloseableReference;
import com.facebook.datasource.DataSource;
@@ -85,9 +83,6 @@ import com.nextcloud.talk.events.UserMentionClickEvent;
import com.nextcloud.talk.models.database.UserEntity;
import com.nextcloud.talk.utils.preferences.AppPreferences;
import com.nextcloud.talk.utils.text.Spans;
-
-import org.greenrobot.eventbus.EventBus;
-
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
@@ -95,9 +90,9 @@ import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+import org.greenrobot.eventbus.EventBus;
public class DisplayUtils {
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/EmojiTextInputEditText.java b/presentation/src/main/java/com/nextcloud/talk/utils/EmojiTextInputEditText.java
index e1111ec83..a1bfd0998 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/EmojiTextInputEditText.java
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/EmojiTextInputEditText.java
@@ -24,9 +24,7 @@ import android.content.Context;
import android.util.AttributeSet;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection;
-
import androidx.emoji.widget.EmojiEditTextHelper;
-
import com.google.android.material.textfield.TextInputEditText;
public class EmojiTextInputEditText extends TextInputEditText {
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/FABAwareScrollingViewBehavior.java b/presentation/src/main/java/com/nextcloud/talk/utils/FABAwareScrollingViewBehavior.java
index da66c2707..d756778f7 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/FABAwareScrollingViewBehavior.java
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/FABAwareScrollingViewBehavior.java
@@ -22,7 +22,6 @@ import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.view.ViewCompat;
import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
-
import java.util.List;
public class FABAwareScrollingViewBehavior extends AppBarLayout.ScrollingViewBehavior {
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/LoggingUtils.kt b/presentation/src/main/java/com/nextcloud/talk/utils/LoggingUtils.kt
index 051eac362..130885cc9 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/LoggingUtils.kt
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/LoggingUtils.kt
@@ -26,12 +26,8 @@ import android.net.Uri
import android.os.Build
import androidx.core.content.FileProvider
import com.nextcloud.talk.BuildConfig
-
-import java.io.File
import java.io.FileNotFoundException
-import java.io.FileOutputStream
import java.io.IOException
-import java.text.DateFormat
import java.text.SimpleDateFormat
import java.util.Date
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/MagicCharPolicy.java b/presentation/src/main/java/com/nextcloud/talk/utils/MagicCharPolicy.java
index e63d58184..f1b8c6eab 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/MagicCharPolicy.java
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/MagicCharPolicy.java
@@ -24,7 +24,6 @@ import android.text.Spannable;
import android.text.Spanned;
import androidx.annotation.Nullable;
import com.otaliastudios.autocomplete.AutocompletePolicy;
-
import java.util.regex.Matcher;
import java.util.regex.Pattern;
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/OkHttpNetworkFetcherWithCache.java b/presentation/src/main/java/com/nextcloud/talk/utils/OkHttpNetworkFetcherWithCache.java
index 82e483cf0..9f4875f17 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/OkHttpNetworkFetcherWithCache.java
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/OkHttpNetworkFetcherWithCache.java
@@ -21,11 +21,10 @@
package com.nextcloud.talk.utils;
import com.facebook.imagepipeline.backends.okhttp3.OkHttpNetworkFetcher;
+import java.util.concurrent.Executor;
import okhttp3.Call;
import okhttp3.OkHttpClient;
-import java.util.concurrent.Executor;
-
public class OkHttpNetworkFetcherWithCache extends OkHttpNetworkFetcher {
public OkHttpNetworkFetcherWithCache(OkHttpClient okHttpClient) {
super(okHttpClient);
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/PushUtils.java b/presentation/src/main/java/com/nextcloud/talk/utils/PushUtils.java
index 194291900..f9a717f38 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/PushUtils.java
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/PushUtils.java
@@ -26,30 +26,42 @@ import android.util.Base64;
import android.util.Log;
import autodagger.AutoInjector;
import com.bluelinelabs.logansquare.LoganSquare;
+import com.nextcloud.talk.models.SignatureVerification;
+import com.nextcloud.talk.models.json.push.PushConfigurationState;
+import com.nextcloud.talk.models.json.push.PushRegistrationOverall;
import com.nextcloud.talk.R;
import com.nextcloud.talk.api.NcApi;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.events.EventStatus;
-import com.nextcloud.data.models.SignatureVerification;
import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.data.models.json.push.PushConfigurationState;
-import com.nextcloud.data.models.json.push.PushRegistrationOverall;
import com.nextcloud.talk.utils.database.user.UserUtils;
import com.nextcloud.talk.utils.preferences.AppPreferences;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
-import org.greenrobot.eventbus.EventBus;
-
-import javax.inject.Inject;
-import java.io.*;
-import java.security.*;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.security.InvalidKeyException;
+import java.security.Key;
+import java.security.KeyFactory;
+import java.security.KeyPair;
+import java.security.KeyPairGenerator;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.security.PublicKey;
+import java.security.Signature;
+import java.security.SignatureException;
import java.security.spec.InvalidKeySpecException;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import javax.inject.Inject;
+import org.greenrobot.eventbus.EventBus;
@AutoInjector(NextcloudTalkApplication.class)
public class PushUtils {
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/SecurityUtils.java b/presentation/src/main/java/com/nextcloud/talk/utils/SecurityUtils.java
index 2542086d6..da00c15c3 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/SecurityUtils.java
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/SecurityUtils.java
@@ -31,13 +31,23 @@ import androidx.annotation.RequiresApi;
import androidx.biometric.BiometricPrompt;
import com.nextcloud.talk.R;
import com.nextcloud.talk.application.NextcloudTalkApplication;
-
-import javax.crypto.*;
import java.io.IOException;
-import java.security.*;
+import java.security.InvalidAlgorithmParameterException;
+import java.security.InvalidKeyException;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.NoSuchProviderException;
+import java.security.UnrecoverableKeyException;
import java.security.cert.CertificateException;
import java.util.Arrays;
import java.util.List;
+import javax.crypto.BadPaddingException;
+import javax.crypto.Cipher;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.KeyGenerator;
+import javax.crypto.NoSuchPaddingException;
+import javax.crypto.SecretKey;
public class SecurityUtils {
private static final String TAG = "SecurityUtils";
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/ShareUtils.java b/presentation/src/main/java/com/nextcloud/talk/utils/ShareUtils.java
index dfe8a680b..fd684a50c 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/ShareUtils.java
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/ShareUtils.java
@@ -33,9 +33,8 @@ import androidx.annotation.Nullable;
import com.kennyc.bottomsheet.adapters.AppAdapter;
import com.nextcloud.talk.R;
import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.data.models.json.conversations.Conversation;
+import com.nextcloud.talk.models.json.conversations.Conversation;
import com.nextcloud.talk.utils.database.user.UserUtils;
-
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/TextMatchers.java b/presentation/src/main/java/com/nextcloud/talk/utils/TextMatchers.java
index 3988f6e31..edc1991fa 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/TextMatchers.java
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/TextMatchers.java
@@ -32,7 +32,6 @@ import eu.medsea.mimeutil.MimeUtil;
import eu.medsea.mimeutil.detector.ExtensionMimeDetector;
import eu.medsea.mimeutil.detector.MagicMimeMimeDetector;
import eu.medsea.mimeutil.detector.OpendesktopMimeDetector;
-
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/animations/SharedElementTransition.java b/presentation/src/main/java/com/nextcloud/talk/utils/animations/SharedElementTransition.java
index 351adaafa..3dfea2eeb 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/animations/SharedElementTransition.java
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/animations/SharedElementTransition.java
@@ -21,13 +21,17 @@
package com.nextcloud.talk.utils.animations;
import android.os.Bundle;
-import android.transition.*;
+import android.transition.ChangeBounds;
+import android.transition.ChangeClipBounds;
+import android.transition.ChangeTransform;
+import android.transition.Fade;
+import android.transition.Transition;
+import android.transition.TransitionSet;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.bluelinelabs.conductor.changehandler.SharedElementTransitionChangeHandler;
-
import java.util.ArrayList;
import java.util.List;
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/database/arbitrarystorage/ArbitraryStorageModule.java b/presentation/src/main/java/com/nextcloud/talk/utils/database/arbitrarystorage/ArbitraryStorageModule.java
index b54c358b4..2d5bedcd6 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/database/arbitrarystorage/ArbitraryStorageModule.java
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/database/arbitrarystorage/ArbitraryStorageModule.java
@@ -26,7 +26,6 @@ import dagger.Module;
import dagger.Provides;
import io.requery.Persistable;
import io.requery.reactivex.ReactiveEntityStore;
-
import javax.inject.Inject;
@Module(includes = DatabaseModule.class)
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/database/user/UserModule.java b/presentation/src/main/java/com/nextcloud/talk/utils/database/user/UserModule.java
index a2bfee62c..d24b61832 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/database/user/UserModule.java
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/database/user/UserModule.java
@@ -26,7 +26,6 @@ import dagger.Module;
import dagger.Provides;
import io.requery.Persistable;
import io.requery.reactivex.ReactiveEntityStore;
-
import javax.inject.Inject;
@Module(includes = DatabaseModule.class)
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/database/user/UserUtils.java b/presentation/src/main/java/com/nextcloud/talk/utils/database/user/UserUtils.java
index bf6b174ad..295b5bbd9 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/database/user/UserUtils.java
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/database/user/UserUtils.java
@@ -31,7 +31,6 @@ import io.reactivex.schedulers.Schedulers;
import io.requery.Persistable;
import io.requery.query.Result;
import io.requery.reactivex.ReactiveEntityStore;
-
import java.util.List;
public class UserUtils {
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/power/PowerManagerUtils.java b/presentation/src/main/java/com/nextcloud/talk/utils/power/PowerManagerUtils.java
index b01d87884..0f13b25cc 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/power/PowerManagerUtils.java
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/power/PowerManagerUtils.java
@@ -32,7 +32,6 @@ import android.os.PowerManager;
import android.provider.Settings;
import autodagger.AutoInjector;
import com.nextcloud.talk.application.NextcloudTalkApplication;
-
import javax.inject.Inject;
@AutoInjector(NextcloudTalkApplication.class)
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/power/ProximityLock.java b/presentation/src/main/java/com/nextcloud/talk/utils/power/ProximityLock.java
index 425f8eb30..bf3f7088d 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/power/ProximityLock.java
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/power/ProximityLock.java
@@ -24,7 +24,6 @@ import android.annotation.SuppressLint;
import android.os.Build;
import android.os.PowerManager;
import androidx.annotation.RequiresApi;
-
import java.util.Optional;
class ProximityLock {
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/preferences/AppPreferences.java b/presentation/src/main/java/com/nextcloud/talk/utils/preferences/AppPreferences.java
index 455da289b..a3f573e2e 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/preferences/AppPreferences.java
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/preferences/AppPreferences.java
@@ -21,7 +21,13 @@
package com.nextcloud.talk.utils.preferences;
import com.nextcloud.talk.R;
-import net.orange_box.storebox.annotations.method.*;
+import net.orange_box.storebox.annotations.method.ClearMethod;
+import net.orange_box.storebox.annotations.method.DefaultValue;
+import net.orange_box.storebox.annotations.method.KeyByResource;
+import net.orange_box.storebox.annotations.method.KeyByString;
+import net.orange_box.storebox.annotations.method.RegisterChangeListenerMethod;
+import net.orange_box.storebox.annotations.method.RemoveMethod;
+import net.orange_box.storebox.annotations.method.UnregisterChangeListenerMethod;
import net.orange_box.storebox.annotations.option.SaveOption;
import net.orange_box.storebox.enums.SaveMode;
import net.orange_box.storebox.listeners.OnPreferenceValueChangedListener;
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/preferences/MagicUserInputModule.java b/presentation/src/main/java/com/nextcloud/talk/utils/preferences/MagicUserInputModule.java
index d33dd52c5..101ac26fe 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/preferences/MagicUserInputModule.java
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/preferences/MagicUserInputModule.java
@@ -33,10 +33,9 @@ import autodagger.AutoInjector;
import com.nextcloud.talk.R;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.yarolegovich.mp.io.StandardUserInputModule;
-
-import javax.inject.Inject;
import java.util.ArrayList;
import java.util.List;
+import javax.inject.Inject;
@AutoInjector(NextcloudTalkApplication.class)
public class MagicUserInputModule extends StandardUserInputModule {
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/preferences/preferencestorage/DatabaseStorageModule.java b/presentation/src/main/java/com/nextcloud/talk/utils/preferences/preferencestorage/DatabaseStorageModule.java
index d7a64f0c3..cd97a13ae 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/preferences/preferencestorage/DatabaseStorageModule.java
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/preferences/preferencestorage/DatabaseStorageModule.java
@@ -23,20 +23,19 @@ package com.nextcloud.talk.utils.preferences.preferencestorage;
import android.os.Bundle;
import android.text.TextUtils;
import autodagger.AutoInjector;
+import com.nextcloud.talk.models.json.generic.GenericOverall;
import com.nextcloud.talk.api.NcApi;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.models.database.ArbitraryStorageEntity;
import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.data.models.json.generic.GenericOverall;
import com.nextcloud.talk.utils.ApiUtils;
import com.nextcloud.talk.utils.database.arbitrarystorage.ArbitraryStorageUtils;
import com.yarolegovich.mp.io.StorageModule;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
-
-import javax.inject.Inject;
import java.util.Set;
+import javax.inject.Inject;
@AutoInjector(NextcloudTalkApplication.class)
public class DatabaseStorageModule implements StorageModule {
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/ssl/MagicKeyManager.java b/presentation/src/main/java/com/nextcloud/talk/utils/ssl/MagicKeyManager.java
index ec05763ff..43a6bcc65 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/ssl/MagicKeyManager.java
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/ssl/MagicKeyManager.java
@@ -30,13 +30,16 @@ import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.models.database.UserEntity;
import com.nextcloud.talk.utils.database.user.UserUtils;
import com.nextcloud.talk.utils.preferences.AppPreferences;
-
-import javax.net.ssl.X509KeyManager;
import java.net.Socket;
import java.security.Principal;
import java.security.PrivateKey;
import java.security.cert.X509Certificate;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import javax.net.ssl.X509KeyManager;
public class MagicKeyManager implements X509KeyManager {
private static final String TAG = "MagicKeyManager";
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/ssl/MagicTrustManager.java b/presentation/src/main/java/com/nextcloud/talk/utils/ssl/MagicTrustManager.java
index 74484d0df..8264a8ee7 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/ssl/MagicTrustManager.java
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/ssl/MagicTrustManager.java
@@ -26,9 +26,6 @@ import android.content.Context;
import android.util.Log;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.events.CertificateEvent;
-import org.greenrobot.eventbus.EventBus;
-
-import javax.net.ssl.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
@@ -36,6 +33,13 @@ import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
+import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.SSLPeerUnverifiedException;
+import javax.net.ssl.SSLSession;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.TrustManagerFactory;
+import javax.net.ssl.X509TrustManager;
+import org.greenrobot.eventbus.EventBus;
public class MagicTrustManager implements X509TrustManager {
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/ssl/SSLSocketFactoryCompat.kt b/presentation/src/main/java/com/nextcloud/talk/utils/ssl/SSLSocketFactoryCompat.kt
index 699e558e7..6d42f0755 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/ssl/SSLSocketFactoryCompat.kt
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/ssl/SSLSocketFactoryCompat.kt
@@ -13,8 +13,12 @@ import java.io.IOException
import java.net.InetAddress
import java.net.Socket
import java.security.GeneralSecurityException
-import java.util.*
-import javax.net.ssl.*
+import java.util.LinkedList
+import javax.net.ssl.KeyManager
+import javax.net.ssl.SSLContext
+import javax.net.ssl.SSLSocket
+import javax.net.ssl.SSLSocketFactory
+import javax.net.ssl.X509TrustManager
class SSLSocketFactoryCompat(keyManager: KeyManager?,
trustManager: X509TrustManager) : SSLSocketFactory() {
diff --git a/presentation/src/main/java/com/nextcloud/talk/utils/ui/MaterialPreferenceCategoryWithRightLink.java b/presentation/src/main/java/com/nextcloud/talk/utils/ui/MaterialPreferenceCategoryWithRightLink.java
index 4e4f4996b..fd6346ecf 100644
--- a/presentation/src/main/java/com/nextcloud/talk/utils/ui/MaterialPreferenceCategoryWithRightLink.java
+++ b/presentation/src/main/java/com/nextcloud/talk/utils/ui/MaterialPreferenceCategoryWithRightLink.java
@@ -28,14 +28,12 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.TextView;
-
-import com.nextcloud.talk.R;
-import com.yarolegovich.mp.util.Utils;
-
import androidx.annotation.ColorInt;
import androidx.annotation.ColorRes;
import androidx.cardview.widget.CardView;
import androidx.core.content.ContextCompat;
+import com.nextcloud.talk.R;
+import com.yarolegovich.mp.util.Utils;
public class MaterialPreferenceCategoryWithRightLink extends CardView {
diff --git a/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicAudioManager.java b/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicAudioManager.java
index a631d7d05..3cbfcd60e 100644
--- a/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicAudioManager.java
+++ b/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicAudioManager.java
@@ -42,12 +42,11 @@ import android.os.Build;
import android.util.Log;
import com.nextcloud.talk.events.PeerConnectionEvent;
import com.nextcloud.talk.utils.power.PowerManagerUtils;
-import org.greenrobot.eventbus.EventBus;
-import org.webrtc.ThreadUtils;
-
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
+import org.greenrobot.eventbus.EventBus;
+import org.webrtc.ThreadUtils;
/**
* MagicAudioManager manages all audio related parts of the AppRTC demo.
diff --git a/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicBluetoothManager.java b/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicBluetoothManager.java
index 8820457df..5f49c0705 100644
--- a/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicBluetoothManager.java
+++ b/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicBluetoothManager.java
@@ -46,10 +46,9 @@ import android.os.Handler;
import android.os.Looper;
import android.os.Process;
import android.util.Log;
-import org.webrtc.ThreadUtils;
-
import java.util.List;
import java.util.Set;
+import org.webrtc.ThreadUtils;
public class MagicBluetoothManager {
private static final String TAG = "MagicBluetoothManager";
diff --git a/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicPeerConnectionWrapper.java b/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicPeerConnectionWrapper.java
index c8ec7fce9..2a916510a 100644
--- a/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicPeerConnectionWrapper.java
+++ b/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicPeerConnectionWrapper.java
@@ -27,25 +27,32 @@ import android.util.Log;
import androidx.annotation.Nullable;
import autodagger.AutoInjector;
import com.bluelinelabs.logansquare.LoganSquare;
+import com.nextcloud.talk.models.json.signaling.DataChannelMessage;
+import com.nextcloud.talk.models.json.signaling.DataChannelMessageNick;
+import com.nextcloud.talk.models.json.signaling.NCIceCandidate;
import com.nextcloud.talk.R;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.events.MediaStreamEvent;
import com.nextcloud.talk.events.PeerConnectionEvent;
import com.nextcloud.talk.events.SessionDescriptionSendEvent;
import com.nextcloud.talk.events.WebSocketCommunicationEvent;
-import com.nextcloud.data.models.json.signaling.DataChannelMessage;
-import com.nextcloud.data.models.json.signaling.DataChannelMessageNick;
-import com.nextcloud.data.models.json.signaling.NCIceCandidate;
import com.nextcloud.talk.utils.LoggingUtils;
-import org.greenrobot.eventbus.EventBus;
-import org.webrtc.*;
-
-import javax.inject.Inject;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import javax.inject.Inject;
+import org.greenrobot.eventbus.EventBus;
+import org.webrtc.DataChannel;
+import org.webrtc.IceCandidate;
+import org.webrtc.MediaConstraints;
+import org.webrtc.MediaStream;
+import org.webrtc.PeerConnection;
+import org.webrtc.PeerConnectionFactory;
+import org.webrtc.RtpReceiver;
+import org.webrtc.SdpObserver;
+import org.webrtc.SessionDescription;
@AutoInjector(NextcloudTalkApplication.class)
public class MagicPeerConnectionWrapper {
diff --git a/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicWebRTCUtils.java b/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicWebRTCUtils.java
index 9989203e5..cad85ca5b 100644
--- a/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicWebRTCUtils.java
+++ b/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicWebRTCUtils.java
@@ -33,8 +33,12 @@ package com.nextcloud.talk.webrtc;
import android.os.Build;
import android.util.Log;
-
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
diff --git a/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java b/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java
index d3257cea5..aafcd9b0e 100644
--- a/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java
+++ b/presentation/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java
@@ -30,26 +30,34 @@ import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.events.NetworkEvent;
import com.nextcloud.talk.events.WebSocketCommunicationEvent;
import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.data.models.json.participants.Participant;
-import com.nextcloud.data.models.json.signaling.NCMessageWrapper;
-import com.nextcloud.data.models.json.signaling.NCSignalingMessage;
-import com.nextcloud.data.models.json.websocket.*;
+import com.nextcloud.talk.models.json.participants.Participant;
+import com.nextcloud.talk.models.json.signaling.NCMessageWrapper;
+import com.nextcloud.talk.models.json.signaling.NCSignalingMessage;
+import com.nextcloud.talk.models.json.websocket.BaseWebSocketMessage;
+import com.nextcloud.talk.models.json.websocket.ByeWebSocketMessage;
+import com.nextcloud.talk.models.json.websocket.CallOverallWebSocketMessage;
+import com.nextcloud.talk.models.json.websocket.ErrorOverallWebSocketMessage;
+import com.nextcloud.talk.models.json.websocket.EventOverallWebSocketMessage;
+import com.nextcloud.talk.models.json.websocket.HelloResponseOverallWebSocketMessage;
+import com.nextcloud.talk.models.json.websocket.JoinedRoomOverallWebSocketMessage;
import com.nextcloud.talk.utils.LoggingUtils;
import com.nextcloud.talk.utils.MagicMap;
import com.nextcloud.talk.utils.bundle.BundleKeys;
-
-import okhttp3.*;
-import okio.ByteString;
-import org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
-import org.greenrobot.eventbus.ThreadMode;
-
-import javax.inject.Inject;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import javax.inject.Inject;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.Response;
+import okhttp3.WebSocket;
+import okhttp3.WebSocketListener;
+import okio.ByteString;
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
@AutoInjector(NextcloudTalkApplication.class)
public class MagicWebSocketInstance extends WebSocketListener {
diff --git a/presentation/src/main/java/com/nextcloud/talk/webrtc/WebSocketConnectionHelper.java b/presentation/src/main/java/com/nextcloud/talk/webrtc/WebSocketConnectionHelper.java
index cb5358b47..1be7a785f 100644
--- a/presentation/src/main/java/com/nextcloud/talk/webrtc/WebSocketConnectionHelper.java
+++ b/presentation/src/main/java/com/nextcloud/talk/webrtc/WebSocketConnectionHelper.java
@@ -23,14 +23,24 @@ package com.nextcloud.talk.webrtc;
import autodagger.AutoInjector;
import com.nextcloud.talk.application.NextcloudTalkApplication;
import com.nextcloud.talk.models.database.UserEntity;
-import com.nextcloud.data.models.json.signaling.NCMessageWrapper;
-import com.nextcloud.data.models.json.websocket.*;
+import com.nextcloud.talk.models.json.signaling.NCMessageWrapper;
+import com.nextcloud.talk.models.json.websocket.ActorWebSocketMessage;
+import com.nextcloud.talk.models.json.websocket.AuthParametersWebSocketMessage;
+import com.nextcloud.talk.models.json.websocket.AuthWebSocketMessage;
+import com.nextcloud.talk.models.json.websocket.CallOverallWebSocketMessage;
+import com.nextcloud.talk.models.json.websocket.CallWebSocketMessage;
+import com.nextcloud.talk.models.json.websocket.HelloOverallWebSocketMessage;
+import com.nextcloud.talk.models.json.websocket.HelloWebSocketMessage;
+import com.nextcloud.talk.models.json.websocket.RequestOfferOverallWebSocketMessage;
+import com.nextcloud.talk.models.json.websocket.RequestOfferSignalingMessage;
+import com.nextcloud.talk.models.json.websocket.RoomOverallWebSocketMessage;
+import com.nextcloud.talk.models.json.websocket.RoomWebSocketMessage;
+import com.nextcloud.talk.models.json.websocket.SignalingDataWebSocketMessageForOffer;
import com.nextcloud.talk.utils.ApiUtils;
-import okhttp3.OkHttpClient;
-
-import javax.inject.Inject;
import java.util.HashMap;
import java.util.Map;
+import javax.inject.Inject;
+import okhttp3.OkHttpClient;
@AutoInjector(NextcloudTalkApplication.class)
public class WebSocketConnectionHelper {
diff --git a/settings.gradle b/settings.gradle
index f160f7db5..1ccac1a4f 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -18,4 +18,4 @@
* along with this program. If not, see .
*/
-include ':presentation', ':data', ':domain'
+include ':presentation', ':data'