Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
This commit is contained in:
tobiasKaminsky 2021-02-09 13:56:24 +01:00
parent dc23bb924b
commit 49f263450b
No known key found for this signature in database
GPG Key ID: 0E00D4D47D0C5AF7
8 changed files with 58 additions and 52 deletions

View File

@ -210,6 +210,7 @@ dependencies {
implementation 'me.zhanghai.android.effortlesspermissions:library:1.1.0' implementation 'me.zhanghai.android.effortlesspermissions:library:1.1.0'
implementation 'org.apache.commons:commons-lang3:3.9' implementation 'org.apache.commons:commons-lang3:3.9'
implementation 'com.github.wooplr:Spotlight:1.3' implementation 'com.github.wooplr:Spotlight:1.3'
implementation 'com.google.code.findbugs:jsr305:2.0.0'
implementation('com.github.mario:chatkit:c6a61767291ddb212a2f4f792a2b6aaf295e69a5', { implementation('com.github.mario:chatkit:c6a61767291ddb212a2f4f792a2b6aaf295e69a5', {
exclude group: 'com.facebook.fresco' exclude group: 'com.facebook.fresco'
}) })

View File

@ -40,8 +40,7 @@ import com.nextcloud.talk.utils.DisplayUtils;
import java.util.List; import java.util.List;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import javax.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.emoji.widget.EmojiTextView; import androidx.emoji.widget.EmojiTextView;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;

View File

@ -110,7 +110,6 @@ class NextcloudTalkApplication : MultiDexApplication(), LifecycleObserver {
PeerConnectionFactory.initialize(PeerConnectionFactory.InitializationOptions.builder(this) PeerConnectionFactory.initialize(PeerConnectionFactory.InitializationOptions.builder(this)
.setEnableVideoHwAcceleration(MagicWebRTCUtils.shouldEnableVideoHardwareAcceleration())
.createInitializationOptions()) .createInitializationOptions())
} catch (e: UnsatisfiedLinkError) { } catch (e: UnsatisfiedLinkError) {
Log.w(TAG, e) Log.w(TAG, e)

View File

@ -360,9 +360,6 @@ public class CallController extends BaseController {
PeerConnectionFactory.Options options = new PeerConnectionFactory.Options(); PeerConnectionFactory.Options options = new PeerConnectionFactory.Options();
peerConnectionFactory = PeerConnectionFactory.builder().createPeerConnectionFactory(); peerConnectionFactory = PeerConnectionFactory.builder().createPeerConnectionFactory();
peerConnectionFactory.setVideoHwAccelerationOptions(rootEglBase.getEglBaseContext(),
rootEglBase.getEglBaseContext());
//Create MediaConstraints - Will be useful for specifying video and audio constraints. //Create MediaConstraints - Will be useful for specifying video and audio constraints.
audioConstraints = new MediaConstraints(); audioConstraints = new MediaConstraints();
videoConstraints = new MediaConstraints(); videoConstraints = new MediaConstraints();
@ -584,7 +581,7 @@ public class CallController extends BaseController {
//Create a VideoSource instance //Create a VideoSource instance
if (videoCapturer != null) { if (videoCapturer != null) {
videoSource = peerConnectionFactory.createVideoSource(videoCapturer); videoSource = peerConnectionFactory.createVideoSource(true);
localVideoTrack = peerConnectionFactory.createVideoTrack("NCv0", videoSource); localVideoTrack = peerConnectionFactory.createVideoTrack("NCv0", videoSource);
localMediaStream.addTrack(localVideoTrack); localMediaStream.addTrack(localVideoTrack);
localVideoTrack.setEnabled(false); localVideoTrack.setEnabled(false);

View File

@ -44,9 +44,6 @@ import android.widget.ImageView;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.bluelinelabs.conductor.RouterTransaction; import com.bluelinelabs.conductor.RouterTransaction;
import com.bluelinelabs.conductor.changehandler.HorizontalChangeHandler; import com.bluelinelabs.conductor.changehandler.HorizontalChangeHandler;
import com.bluelinelabs.logansquare.LoganSquare; import com.bluelinelabs.logansquare.LoganSquare;
@ -82,6 +79,7 @@ import com.nextcloud.talk.utils.singletons.AvatarStatusCodeHolder;
import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode; import org.greenrobot.eventbus.ThreadMode;
import org.jetbrains.annotations.NotNull;
import org.michaelevans.colorart.library.ColorArt; import org.michaelevans.colorart.library.ColorArt;
import org.parceler.Parcels; import org.parceler.Parcels;
@ -89,9 +87,12 @@ import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.annotation.Nullable; import androidx.annotation.Nullable;
import javax.inject.Inject; import javax.inject.Inject;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout;
import autodagger.AutoInjector; import autodagger.AutoInjector;
import butterknife.BindView; import butterknife.BindView;
import butterknife.OnClick; import butterknife.OnClick;
@ -164,8 +165,9 @@ public class CallNotificationController extends BaseController {
credentials = ApiUtils.getCredentials(userBeingCalled.getUsername(), userBeingCalled.getToken()); credentials = ApiUtils.getCredentials(userBeingCalled.getUsername(), userBeingCalled.getToken());
} }
@NotNull
@Override @Override
protected View inflateView(@NonNull LayoutInflater inflater, @NonNull ViewGroup container) { protected View inflateView(@NotNull LayoutInflater inflater, @NotNull ViewGroup container) {
return inflater.inflate(R.layout.controller_call_notification, container, false); return inflater.inflate(R.layout.controller_call_notification, container, false);
} }
@ -210,12 +212,12 @@ public class CallNotificationController extends BaseController {
.takeWhile(observable -> !leavingScreen) .takeWhile(observable -> !leavingScreen)
.subscribe(new Observer<ParticipantsOverall>() { .subscribe(new Observer<ParticipantsOverall>() {
@Override @Override
public void onSubscribe(Disposable d) { public void onSubscribe(@NotNull Disposable d) {
disposablesList.add(d); disposablesList.add(d);
} }
@Override @Override
public void onNext(ParticipantsOverall participantsOverall) { public void onNext(@NotNull ParticipantsOverall participantsOverall) {
boolean hasParticipantsInCall = false; boolean hasParticipantsInCall = false;
boolean inCallOnDifferentDevice = false; boolean inCallOnDifferentDevice = false;
List<Participant> participantList = participantsOverall.getOcs().getData(); List<Participant> participantList = participantsOverall.getOcs().getData();
@ -238,7 +240,7 @@ public class CallNotificationController extends BaseController {
} }
@Override @Override
public void onError(Throwable e) { public void onError(@NotNull Throwable e) {
} }
@ -259,12 +261,12 @@ public class CallNotificationController extends BaseController {
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<RoomsOverall>() { .subscribe(new Observer<RoomsOverall>() {
@Override @Override
public void onSubscribe(Disposable d) { public void onSubscribe(@NotNull Disposable d) {
disposablesList.add(d); disposablesList.add(d);
} }
@Override @Override
public void onNext(RoomsOverall roomsOverall) { public void onNext(@NotNull RoomsOverall roomsOverall) {
for (Conversation conversation : roomsOverall.getOcs().getData()) { for (Conversation conversation : roomsOverall.getOcs().getData()) {
if (roomId.equals(conversation.getRoomId()) || roomId.equals(conversation.token)) { if (roomId.equals(conversation.getRoomId()) || roomId.equals(conversation.token)) {
currentConversation = conversation; currentConversation = conversation;
@ -276,7 +278,7 @@ public class CallNotificationController extends BaseController {
} }
@Override @Override
public void onError(Throwable e) { public void onError(@NotNull Throwable e) {
} }

View File

@ -23,8 +23,7 @@ package com.nextcloud.talk.dagger.modules;
import android.content.Context; import android.content.Context;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.github.aurae.retrofit2.LoganSquareConverterFactory; import com.github.aurae.retrofit2.LoganSquareConverterFactory;
import com.nextcloud.talk.BuildConfig; import com.nextcloud.talk.BuildConfig;
import com.nextcloud.talk.R; import com.nextcloud.talk.R;
@ -38,18 +37,7 @@ import com.nextcloud.talk.utils.singletons.AvatarStatusCodeHolder;
import com.nextcloud.talk.utils.ssl.MagicKeyManager; import com.nextcloud.talk.utils.ssl.MagicKeyManager;
import com.nextcloud.talk.utils.ssl.MagicTrustManager; import com.nextcloud.talk.utils.ssl.MagicTrustManager;
import com.nextcloud.talk.utils.ssl.SSLSocketFactoryCompat; 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.io.IOException;
import java.net.CookieManager; import java.net.CookieManager;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
@ -61,6 +49,30 @@ import java.security.UnrecoverableKeyException;
import java.security.cert.CertificateException; import java.security.cert.CertificateException;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import javax.inject.Singleton;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.X509KeyManager;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import dagger.Module;
import dagger.Provides;
import io.reactivex.schedulers.Schedulers;
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) @Module(includes = DatabaseModule.class)
public class RestModule { public class RestModule {
@ -260,7 +272,7 @@ public class RestModule {
this.authenticatorType = authenticatorType; this.authenticatorType = authenticatorType;
} }
@Nullable @javax.annotation.Nullable
@Override @Override
public Request authenticate(@Nullable Route route, @NonNull Response response) { public Request authenticate(@Nullable Route route, @NonNull Response response) {
if (response.request().header(authenticatorType) != null) { if (response.request().header(authenticatorType) != null) {

View File

@ -22,8 +22,6 @@ package com.nextcloud.talk.utils;
import android.net.Uri; import android.net.Uri;
import android.text.TextUtils; import android.text.TextUtils;
import androidx.annotation.DimenRes;
import com.nextcloud.talk.BuildConfig; import com.nextcloud.talk.BuildConfig;
import com.nextcloud.talk.R; import com.nextcloud.talk.R;
import com.nextcloud.talk.application.NextcloudTalkApplication; import com.nextcloud.talk.application.NextcloudTalkApplication;
@ -32,8 +30,8 @@ import com.nextcloud.talk.models.RetrofitBucket;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import javax.annotation.Nullable; import androidx.annotation.DimenRes;
import androidx.annotation.Nullable;
import okhttp3.Credentials; import okhttp3.Credentials;
public class ApiUtils { public class ApiUtils {

View File

@ -52,16 +52,6 @@ import android.view.ViewGroup;
import android.widget.EditText; import android.widget.EditText;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.ColorInt;
import androidx.annotation.ColorRes;
import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull;
import androidx.annotation.XmlRes;
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.executors.UiThreadImmediateExecutorService;
import com.facebook.common.references.CloseableReference; import com.facebook.common.references.CloseableReference;
import com.facebook.datasource.DataSource; import com.facebook.datasource.DataSource;
@ -96,8 +86,16 @@ import java.util.Map;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import javax.annotation.Nonnull; import androidx.annotation.ColorInt;
import javax.annotation.Nullable; import androidx.annotation.ColorRes;
import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.XmlRes;
import androidx.appcompat.widget.AppCompatDrawableManager;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat;
import androidx.emoji.text.EmojiCompat;
public class DisplayUtils { public class DisplayUtils {
@ -107,7 +105,7 @@ public class DisplayUtils {
SpannableString spannableString = new SpannableString(string); SpannableString spannableString = new SpannableString(string);
spannableString.setSpan(new ClickableSpan() { spannableString.setSpan(new ClickableSpan() {
@Override @Override
public void onClick(@Nonnull View widget) { public void onClick(@NonNull View widget) {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
browserIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); browserIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
NextcloudTalkApplication.Companion.getSharedApplication().getApplicationContext().startActivity(browserIntent); NextcloudTalkApplication.Companion.getSharedApplication().getApplicationContext().startActivity(browserIntent);
@ -181,12 +179,12 @@ public class DisplayUtils {
} }
@Override @Override
public void onFinalImageSet(String id, @javax.annotation.Nullable Object imageInfo, @javax.annotation.Nullable Animatable animatable) { public void onFinalImageSet(String id, @Nullable Object imageInfo, @Nullable Animatable animatable) {
updateViewSize((ImageInfo) imageInfo, draweeView); updateViewSize((ImageInfo) imageInfo, draweeView);
} }
@Override @Override
public void onIntermediateImageSet(String id, @javax.annotation.Nullable Object imageInfo) { public void onIntermediateImageSet(String id, @Nullable Object imageInfo) {
updateViewSize((ImageInfo) imageInfo, draweeView); updateViewSize((ImageInfo) imageInfo, draweeView);
} }