diff --git a/ring-android/app/build.gradle b/ring-android/app/build.gradle index e66d9b40a42f052b6ffe0fc6674eb09de8be5d4a..86ef27d9f761d3cdb3694c5661d5b8eab661b683 100644 --- a/ring-android/app/build.gradle +++ b/ring-android/app/build.gradle @@ -119,7 +119,7 @@ dependencies { annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0' // RxAndroid - implementation 'io.reactivex.rxjava2:rxandroid:2.1.1' + implementation 'io.reactivex.rxjava3:rxandroid:3.0.0' implementation 'com.jsibbold:zoomage:1.2.0' implementation 'com.googlecode.ez-vcard:ez-vcard:0.11.2' diff --git a/ring-android/app/src/main/java/cx/ring/account/AccountCreationModelImpl.java b/ring-android/app/src/main/java/cx/ring/account/AccountCreationModelImpl.java index 1217a0056639b6e23c2892aec796441a30285989..aa4173dd1f6887e984d2526f94d94cd24a4a7915 100644 --- a/ring-android/app/src/main/java/cx/ring/account/AccountCreationModelImpl.java +++ b/ring-android/app/src/main/java/cx/ring/account/AccountCreationModelImpl.java @@ -30,7 +30,7 @@ import ezvcard.property.FormattedName; import ezvcard.property.Photo; import ezvcard.property.RawProperty; import ezvcard.property.Uid; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Single; public class AccountCreationModelImpl extends AccountCreationModel implements Serializable { diff --git a/ring-android/app/src/main/java/cx/ring/account/AccountEditionPresenter.java b/ring-android/app/src/main/java/cx/ring/account/AccountEditionPresenter.java index 41eab5b621dc418a17acb945c6483c6b829c4eca..13b0d722b6026d6b540afd0735a0f882da68a729 100644 --- a/ring-android/app/src/main/java/cx/ring/account/AccountEditionPresenter.java +++ b/ring-android/app/src/main/java/cx/ring/account/AccountEditionPresenter.java @@ -25,7 +25,8 @@ import javax.inject.Named; import net.jami.model.Account; import net.jami.mvp.RootPresenter; import net.jami.services.AccountService; -import io.reactivex.Scheduler; + +import io.reactivex.rxjava3.core.Scheduler; public class AccountEditionPresenter extends RootPresenter<AccountEditionView> { private final AccountService mAccountService; diff --git a/ring-android/app/src/main/java/cx/ring/account/AccountWizardActivity.java b/ring-android/app/src/main/java/cx/ring/account/AccountWizardActivity.java index a46f7c0e8c38fa083f7a1c15df1deb3632969102..7a695a0f7a4eb150e63fbd53645b297d0382f9ba 100644 --- a/ring-android/app/src/main/java/cx/ring/account/AccountWizardActivity.java +++ b/ring-android/app/src/main/java/cx/ring/account/AccountWizardActivity.java @@ -54,8 +54,8 @@ import cx.ring.mvp.BaseActivity; import net.jami.mvp.AccountCreationModel; import net.jami.utils.VCardUtils; import ezvcard.VCard; -import io.reactivex.Single; -import io.reactivex.schedulers.Schedulers; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.schedulers.Schedulers; public class AccountWizardActivity extends BaseActivity<AccountWizardPresenter> implements AccountWizardView { static final String TAG = AccountWizardActivity.class.getName(); diff --git a/ring-android/app/src/main/java/cx/ring/account/HomeAccountCreationFragment.java b/ring-android/app/src/main/java/cx/ring/account/HomeAccountCreationFragment.java index 0136a9846c2db7693a19ac1dcc46da76f1b1a641..a5352ba5a6f9d6f887ada67c18379b454fc03814 100644 --- a/ring-android/app/src/main/java/cx/ring/account/HomeAccountCreationFragment.java +++ b/ring-android/app/src/main/java/cx/ring/account/HomeAccountCreationFragment.java @@ -41,7 +41,7 @@ import cx.ring.application.JamiApplication; import cx.ring.databinding.FragAccHomeCreateBinding; import cx.ring.mvp.BaseSupportFragment; import cx.ring.utils.AndroidFileUtils; -import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; public class HomeAccountCreationFragment extends BaseSupportFragment<HomeAccountCreationPresenter> implements HomeAccountCreationView { private static final int ARCHIVE_REQUEST_CODE = 42; diff --git a/ring-android/app/src/main/java/cx/ring/account/JamiAccountSummaryFragment.java b/ring-android/app/src/main/java/cx/ring/account/JamiAccountSummaryFragment.java index 162fbcb08f557f04aeeae4294826950b3e99f2a9..7e9043ee06b4c133b6cf76589e1add81904745b3 100644 --- a/ring-android/app/src/main/java/cx/ring/account/JamiAccountSummaryFragment.java +++ b/ring-android/app/src/main/java/cx/ring/account/JamiAccountSummaryFragment.java @@ -82,10 +82,10 @@ import cx.ring.utils.BitmapUtils; import cx.ring.utils.ContentUriHandler; import cx.ring.views.AvatarDrawable; import cx.ring.views.SwitchButton; -import io.reactivex.Single; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.CompositeDisposable; -import io.reactivex.schedulers.Schedulers; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.disposables.CompositeDisposable; +import io.reactivex.rxjava3.schedulers.Schedulers; public class JamiAccountSummaryFragment extends BaseSupportFragment<JamiAccountSummaryPresenter> implements RegisterNameDialog.RegisterNameDialogListener, diff --git a/ring-android/app/src/main/java/cx/ring/account/ProfileCreationFragment.java b/ring-android/app/src/main/java/cx/ring/account/ProfileCreationFragment.java index 79225f3e8d4e6e3c21877bb6dda8d941daa09ad9..764ee026a16cbb160decb41ddc1d234a4df5b47c 100644 --- a/ring-android/app/src/main/java/cx/ring/account/ProfileCreationFragment.java +++ b/ring-android/app/src/main/java/cx/ring/account/ProfileCreationFragment.java @@ -56,7 +56,7 @@ import cx.ring.mvp.BaseSupportFragment; import cx.ring.utils.AndroidFileUtils; import cx.ring.utils.ContentUriHandler; import cx.ring.views.AvatarDrawable; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Single; public class ProfileCreationFragment extends BaseSupportFragment<ProfileCreationPresenter> implements ProfileCreationView { public static final String TAG = ProfileCreationFragment.class.getSimpleName(); diff --git a/ring-android/app/src/main/java/cx/ring/account/RegisterNameDialog.java b/ring-android/app/src/main/java/cx/ring/account/RegisterNameDialog.java index 872e08a3f9ba819b8117d474a5fdba284c01756a..f192b82e419249c7cc894e8d7605d00f51fb7979 100644 --- a/ring-android/app/src/main/java/cx/ring/account/RegisterNameDialog.java +++ b/ring-android/app/src/main/java/cx/ring/account/RegisterNameDialog.java @@ -42,8 +42,8 @@ import cx.ring.databinding.FragRegisterNameBinding; import net.jami.services.AccountService; import cx.ring.utils.RegisteredNameFilter; import cx.ring.utils.RegisteredNameTextWatcher; -import io.reactivex.Scheduler; -import io.reactivex.disposables.Disposable; +import io.reactivex.rxjava3.core.Scheduler; +import io.reactivex.rxjava3.disposables.Disposable; public class RegisterNameDialog extends DialogFragment { static final String TAG = RegisterNameDialog.class.getSimpleName(); diff --git a/ring-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.java b/ring-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.java index 9c516366e116de3b9e983c18be116f3f0f76e277..f0400896a9f2bd638189e3e2d67d53ffdb28d88b 100644 --- a/ring-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.java +++ b/ring-android/app/src/main/java/cx/ring/adapters/ConversationAdapter.java @@ -93,8 +93,8 @@ import cx.ring.utils.GlideApp; import cx.ring.utils.GlideOptions; import cx.ring.utils.ResourceMapper; import cx.ring.views.ConversationViewHolder; -import io.reactivex.Observable; -import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.core.Observable; public class ConversationAdapter extends RecyclerView.Adapter<ConversationViewHolder> { private final static String TAG = ConversationAdapter.class.getSimpleName(); @@ -144,7 +144,7 @@ public class ConversationAdapter extends RecyclerView.Adapter<ConversationViewHo .override(mPictureMaxSize) .transform(new RoundedCorners(corner)); timestampUpdateTimer = Observable.interval(10, TimeUnit.SECONDS, AndroidSchedulers.mainThread()) - .startWith(0L); + .startWithItem(0L); } /** @@ -513,7 +513,7 @@ public class ConversationAdapter extends RecyclerView.Adapter<ConversationViewHo ((ImageView) viewHolder.btnAccept).setImageResource(R.drawable.baseline_play_arrow_24); }); viewHolder.compositeDisposable.add(Observable.interval(1L, TimeUnit.SECONDS, AndroidSchedulers.mainThread()) - .startWith(0L) + .startWithItem(0L) .subscribe(t -> { int pS = player.getCurrentPosition() / 1000; int dS = player.getDuration() / 1000; diff --git a/ring-android/app/src/main/java/cx/ring/adapters/RingtoneAdapter.java b/ring-android/app/src/main/java/cx/ring/adapters/RingtoneAdapter.java index 7b6b9d75e157a401935ba78b714c61cad2cb7211..a22acb9c60462e0a30079a3b943661ac3e8a591c 100644 --- a/ring-android/app/src/main/java/cx/ring/adapters/RingtoneAdapter.java +++ b/ring-android/app/src/main/java/cx/ring/adapters/RingtoneAdapter.java @@ -37,24 +37,24 @@ import java.io.IOException; import java.util.List; import cx.ring.R; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.subjects.PublishSubject; +import io.reactivex.rxjava3.subjects.Subject; + import net.jami.model.Ringtone; import net.jami.utils.Log; -import io.reactivex.Observable; -import io.reactivex.subjects.PublishSubject; -import io.reactivex.subjects.Subject; public class RingtoneAdapter extends RecyclerView.Adapter<RingtoneAdapter.RingtoneViewHolder> { private final String TAG = RingtoneAdapter.class.getSimpleName(); - private List<Ringtone> ringtoneList; + private final List<Ringtone> ringtoneList; private int currentlySelectedPosition = 1; // default item - private MediaPlayer mp = new MediaPlayer(); - private Subject<Ringtone> ringtoneSubject = PublishSubject.create(); - - class RingtoneViewHolder extends RecyclerView.ViewHolder { - private TextView name; - private ImageView isSelected, isPlaying, ringtoneIcon; + private final MediaPlayer mp = new MediaPlayer(); + private final Subject<Ringtone> ringtoneSubject = PublishSubject.create(); + static class RingtoneViewHolder extends RecyclerView.ViewHolder { + private final TextView name; + private final ImageView isSelected, isPlaying, ringtoneIcon; RingtoneViewHolder(View view) { super(view); diff --git a/ring-android/app/src/main/java/cx/ring/adapters/SmartListAdapter.java b/ring-android/app/src/main/java/cx/ring/adapters/SmartListAdapter.java index 2ed8a07ee1ac214c4a40114a020cb679a9e753be..c83d8a9fecf61d5fd928defb0fc421dee6a2de89 100644 --- a/ring-android/app/src/main/java/cx/ring/adapters/SmartListAdapter.java +++ b/ring-android/app/src/main/java/cx/ring/adapters/SmartListAdapter.java @@ -24,7 +24,7 @@ import cx.ring.databinding.ItemSmartlistBinding; import cx.ring.databinding.ItemSmartlistHeaderBinding; import net.jami.smartlist.SmartListViewModel; import cx.ring.viewholders.SmartListViewHolder; -import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.rxjava3.disposables.CompositeDisposable; import android.os.Parcelable; import android.view.LayoutInflater; diff --git a/ring-android/app/src/main/java/cx/ring/application/JamiApplication.java b/ring-android/app/src/main/java/cx/ring/application/JamiApplication.java index a8e2035c7c93b4efa26291d368a98c9337a48311..5161c3344f1242330330c31a25c5082de0270a3b 100644 --- a/ring-android/app/src/main/java/cx/ring/application/JamiApplication.java +++ b/ring-android/app/src/main/java/cx/ring/application/JamiApplication.java @@ -72,8 +72,8 @@ import cx.ring.dependencyinjection.ServiceInjectionModule; import cx.ring.service.DRingService; import cx.ring.service.JamiJobService; import cx.ring.utils.AndroidFileUtils; -import io.reactivex.Completable; -import io.reactivex.schedulers.Schedulers; +import io.reactivex.rxjava3.core.Completable; +import io.reactivex.rxjava3.schedulers.Schedulers; public abstract class JamiApplication extends Application { private static final String TAG = JamiApplication.class.getSimpleName(); diff --git a/ring-android/app/src/main/java/cx/ring/client/AccountSpinnerAdapter.java b/ring-android/app/src/main/java/cx/ring/client/AccountSpinnerAdapter.java index 3d397063c7e843dad4f439d378c419383305948f..99f8ff951cfc4a92e5df64dfcc355c40a216ec6f 100644 --- a/ring-android/app/src/main/java/cx/ring/client/AccountSpinnerAdapter.java +++ b/ring-android/app/src/main/java/cx/ring/client/AccountSpinnerAdapter.java @@ -37,9 +37,9 @@ import cx.ring.R; import cx.ring.databinding.ItemToolbarSelectedBinding; import cx.ring.databinding.ItemToolbarSpinnerBinding; import cx.ring.views.AvatarDrawable; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.CompositeDisposable; -import io.reactivex.schedulers.Schedulers; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.disposables.CompositeDisposable; +import io.reactivex.rxjava3.schedulers.Schedulers; public class AccountSpinnerAdapter extends ArrayAdapter<Account> { private static final String TAG = AccountSpinnerAdapter.class.getSimpleName(); diff --git a/ring-android/app/src/main/java/cx/ring/client/ContactDetailsActivity.java b/ring-android/app/src/main/java/cx/ring/client/ContactDetailsActivity.java index 3e1a9f1abd4285505c18afeff3805c7b094bdb46..e3d37ffb016329f6014a089db13b040be457fc16 100644 --- a/ring-android/app/src/main/java/cx/ring/client/ContactDetailsActivity.java +++ b/ring-android/app/src/main/java/cx/ring/client/ContactDetailsActivity.java @@ -71,8 +71,8 @@ import cx.ring.fragments.ConversationFragment; import cx.ring.services.SharedPreferencesServiceImpl; import cx.ring.utils.ConversationPath; import cx.ring.views.AvatarDrawable; -import io.reactivex.Single; -import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.disposables.CompositeDisposable; public class ContactDetailsActivity extends AppCompatActivity { private static final String TAG = ContactDetailsActivity.class.getName(); diff --git a/ring-android/app/src/main/java/cx/ring/client/ConversationSelectionActivity.java b/ring-android/app/src/main/java/cx/ring/client/ConversationSelectionActivity.java index 5d0a7cc1138e1a22006c87aaa100a4af9c6d7313..77b60d7ca6ed4469fb04f8b75eaf8b1009d3cb89 100644 --- a/ring-android/app/src/main/java/cx/ring/client/ConversationSelectionActivity.java +++ b/ring-android/app/src/main/java/cx/ring/client/ConversationSelectionActivity.java @@ -47,8 +47,8 @@ import net.jami.services.CallService; import net.jami.smartlist.SmartListViewModel; import cx.ring.utils.ConversationPath; import cx.ring.viewholders.SmartListViewHolder; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.disposables.CompositeDisposable; public class ConversationSelectionActivity extends AppCompatActivity { private final static String TAG = ConversationSelectionActivity.class.getSimpleName(); diff --git a/ring-android/app/src/main/java/cx/ring/client/HomeActivity.java b/ring-android/app/src/main/java/cx/ring/client/HomeActivity.java index f6ce8841e2d6ff43ddcbd89cb1a0db12daf2c1e8..12a722d7ffa4f5c86af816e305e10e6acc86eea0 100644 --- a/ring-android/app/src/main/java/cx/ring/client/HomeActivity.java +++ b/ring-android/app/src/main/java/cx/ring/client/HomeActivity.java @@ -92,10 +92,10 @@ import cx.ring.utils.ContentUriHandler; import cx.ring.utils.ConversationPath; import cx.ring.utils.DeviceUtils; import cx.ring.views.SwitchButton; -import io.reactivex.Observable; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.CompositeDisposable; -import io.reactivex.schedulers.Schedulers; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.disposables.CompositeDisposable; +import io.reactivex.rxjava3.schedulers.Schedulers; public class HomeActivity extends AppCompatActivity implements BottomNavigationView.OnNavigationItemSelectedListener, Spinner.OnItemSelectedListener, Colorable { diff --git a/ring-android/app/src/main/java/cx/ring/client/LogsActivity.java b/ring-android/app/src/main/java/cx/ring/client/LogsActivity.java index 07f7d2cd6b513e8ef11e378f4b0af56c307410cd..4cc27d633b467878f81b23b035dff54470578881 100644 --- a/ring-android/app/src/main/java/cx/ring/client/LogsActivity.java +++ b/ring-android/app/src/main/java/cx/ring/client/LogsActivity.java @@ -50,11 +50,11 @@ import cx.ring.application.JamiApplication; import cx.ring.databinding.ActivityLogsBinding; import cx.ring.utils.AndroidFileUtils; import cx.ring.utils.ContentUriHandler; -import io.reactivex.Maybe; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.CompositeDisposable; -import io.reactivex.disposables.Disposable; -import io.reactivex.schedulers.Schedulers; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.core.Maybe; +import io.reactivex.rxjava3.disposables.CompositeDisposable; +import io.reactivex.rxjava3.disposables.Disposable; +import io.reactivex.rxjava3.schedulers.Schedulers; public class LogsActivity extends AppCompatActivity { private static final String TAG = LogsActivity.class.getSimpleName(); diff --git a/ring-android/app/src/main/java/cx/ring/client/RingtoneActivity.java b/ring-android/app/src/main/java/cx/ring/client/RingtoneActivity.java index 1eb2f86281dcd57411bbe108a48a729f3a44e68b..069fbdaafccc9c0efdb9d2c8fa541fe657410c76 100644 --- a/ring-android/app/src/main/java/cx/ring/client/RingtoneActivity.java +++ b/ring-android/app/src/main/java/cx/ring/client/RingtoneActivity.java @@ -59,9 +59,10 @@ import net.jami.model.ConfigKey; import net.jami.model.Ringtone; import net.jami.services.AccountService; import cx.ring.utils.AndroidFileUtils; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.disposables.Disposable; + import net.jami.utils.Log; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.Disposable; public class RingtoneActivity extends AppCompatActivity { @@ -366,7 +367,7 @@ public class RingtoneActivity extends AppCompatActivity { cr.takePersistableUriPermission(uri, takeFlags); AndroidFileUtils.getCacheFile(this, uri) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(file -> onFileFound(file), + .subscribe(this::onFileFound, err -> Toast.makeText(this, "Can't load ringtone !", Toast.LENGTH_SHORT).show()); } } diff --git a/ring-android/app/src/main/java/cx/ring/contactrequests/ContactRequestsFragment.java b/ring-android/app/src/main/java/cx/ring/contactrequests/ContactRequestsFragment.java index a8171d6b56c8f4c84bbedacce7eefddcc73d20ce..e43507f9de1140613e98755825b7f23ef96bb5f6 100644 --- a/ring-android/app/src/main/java/cx/ring/contactrequests/ContactRequestsFragment.java +++ b/ring-android/app/src/main/java/cx/ring/contactrequests/ContactRequestsFragment.java @@ -45,7 +45,7 @@ import cx.ring.mvp.BaseSupportFragment; import net.jami.smartlist.SmartListViewModel; import cx.ring.viewholders.SmartListViewHolder; -import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.rxjava3.disposables.CompositeDisposable; public class ContactRequestsFragment extends BaseSupportFragment<ContactRequestsPresenter> implements ContactRequestsView, SmartListViewHolder.SmartListListeners { diff --git a/ring-android/app/src/main/java/cx/ring/dependencyinjection/JamiInjectionModule.java b/ring-android/app/src/main/java/cx/ring/dependencyinjection/JamiInjectionModule.java index a8e387cfcad34ddc138e5d72c195411af2f188fd..85878a2cf7d96033258f4bf34b43b4282cdb9f84 100755 --- a/ring-android/app/src/main/java/cx/ring/dependencyinjection/JamiInjectionModule.java +++ b/ring-android/app/src/main/java/cx/ring/dependencyinjection/JamiInjectionModule.java @@ -24,8 +24,8 @@ import android.content.Context; import cx.ring.application.JamiApplication; import dagger.Module; import dagger.Provides; -import io.reactivex.Scheduler; -import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.core.Scheduler; @Module public class JamiInjectionModule { diff --git a/ring-android/app/src/main/java/cx/ring/dependencyinjection/ServiceInjectionModule.java b/ring-android/app/src/main/java/cx/ring/dependencyinjection/ServiceInjectionModule.java index 5bf1bfb891dbe8bb12e402f0ef9fc9378161e5f6..35214e76406aae44410313e4da27257e7b912231 100755 --- a/ring-android/app/src/main/java/cx/ring/dependencyinjection/ServiceInjectionModule.java +++ b/ring-android/app/src/main/java/cx/ring/dependencyinjection/ServiceInjectionModule.java @@ -52,8 +52,8 @@ import cx.ring.services.SharedPreferencesServiceImpl; import cx.ring.services.VCardServiceImpl; import dagger.Module; import dagger.Provides; -import io.reactivex.Scheduler; -import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.core.Scheduler; @Module public class ServiceInjectionModule { diff --git a/ring-android/app/src/main/java/cx/ring/fragments/AccountMigrationFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/AccountMigrationFragment.java index 9f47d587bdb069a471f3c5fad33f1822eb52e545..99ec80a0f52a0cc70f495f84be34b5f19a95f4a7 100644 --- a/ring-android/app/src/main/java/cx/ring/fragments/AccountMigrationFragment.java +++ b/ring-android/app/src/main/java/cx/ring/fragments/AccountMigrationFragment.java @@ -45,12 +45,13 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder; import cx.ring.R; import cx.ring.application.JamiApplication; import cx.ring.databinding.FragAccountMigrationBinding; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.disposables.CompositeDisposable; + import net.jami.model.Account; import net.jami.model.AccountConfig; import net.jami.model.ConfigKey; import net.jami.services.AccountService; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.CompositeDisposable; public class AccountMigrationFragment extends Fragment { public static final String ACCOUNT_ID = "ACCOUNT_ID"; diff --git a/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java index 05774ee7abe17c7383612ec6bd677d44fcd62105..3092a022038275981143377e2f1aaa12b42d357d 100644 --- a/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java +++ b/ring-android/app/src/main/java/cx/ring/fragments/CallFragment.java @@ -127,7 +127,7 @@ import cx.ring.utils.ConversationPath; import cx.ring.utils.DeviceUtils; import cx.ring.utils.MediaButtonsHelper; import cx.ring.views.AvatarDrawable; -import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.rxjava3.disposables.CompositeDisposable; public class CallFragment extends BaseSupportFragment<CallPresenter> implements CallView, MediaButtonsHelper.MediaButtonsHelperCallback, RecyclerPickerLayoutManager.ItemSelectedListener { diff --git a/ring-android/app/src/main/java/cx/ring/fragments/ContactPickerFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/ContactPickerFragment.java index e7b51b4c9bd367719cc83ef61fc40c31ada46651..0a3fa87fbe9bea6e0661f4d942c76cf7e5ccfba5 100644 --- a/ring-android/app/src/main/java/cx/ring/fragments/ContactPickerFragment.java +++ b/ring-android/app/src/main/java/cx/ring/fragments/ContactPickerFragment.java @@ -31,8 +31,8 @@ import net.jami.model.Contact; import net.jami.smartlist.SmartListViewModel; import cx.ring.viewholders.SmartListViewHolder; import cx.ring.views.AvatarDrawable; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.disposables.CompositeDisposable; public class ContactPickerFragment extends BottomSheetDialogFragment { diff --git a/ring-android/app/src/main/java/cx/ring/fragments/ConversationFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/ConversationFragment.java index 037ad09f0f6bb4dcfc2889ea2909ac776e4c7de2..ec1c548c871b61a0845c23b779b413359e2bb1b2 100644 --- a/ring-android/app/src/main/java/cx/ring/fragments/ConversationFragment.java +++ b/ring-android/app/src/main/java/cx/ring/fragments/ConversationFragment.java @@ -33,8 +33,8 @@ import android.content.Intent; import android.content.ServiceConnection; import android.content.SharedPreferences; import android.content.pm.PackageManager; -import android.graphics.Typeface; import android.content.res.Resources; +import android.graphics.Typeface; import android.os.Bundle; import android.os.Environment; import android.os.IBinder; @@ -56,8 +56,6 @@ import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; -import com.google.android.material.snackbar.Snackbar; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.view.menu.MenuBuilder; @@ -71,6 +69,21 @@ import androidx.recyclerview.widget.DefaultItemAnimator; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.google.android.material.snackbar.Snackbar; + +import net.jami.conversation.ConversationPresenter; +import net.jami.conversation.ConversationView; +import net.jami.daemon.JamiService; +import net.jami.model.Account; +import net.jami.model.Contact; +import net.jami.model.Conversation; +import net.jami.model.DataTransfer; +import net.jami.model.Error; +import net.jami.model.Interaction; +import net.jami.model.Phone; +import net.jami.model.Uri; +import net.jami.services.NotificationService; + import java.io.File; import java.util.HashMap; import java.util.List; @@ -83,39 +96,26 @@ import cx.ring.client.CallActivity; import cx.ring.client.ContactDetailsActivity; import cx.ring.client.ConversationActivity; import cx.ring.client.HomeActivity; -import cx.ring.views.AvatarFactory; -import net.jami.conversation.ConversationPresenter; -import net.jami.conversation.ConversationView; import cx.ring.databinding.FragConversationBinding; import cx.ring.interfaces.Colorable; - -import net.jami.daemon.JamiService; -import net.jami.model.Account; -import net.jami.model.Contact; -import net.jami.model.Conversation; -import net.jami.model.Interaction; -import net.jami.model.DataTransfer; -import net.jami.model.Phone; -import net.jami.model.Error; -import net.jami.model.Uri; import cx.ring.mvp.BaseSupportFragment; import cx.ring.service.DRingService; -import cx.ring.services.LocationSharingService; -import net.jami.services.NotificationService; +import cx.ring.service.LocationSharingService; import cx.ring.services.NotificationServiceImpl; import cx.ring.services.SharedPreferencesServiceImpl; import cx.ring.utils.ActionHelper; import cx.ring.utils.AndroidFileUtils; import cx.ring.utils.ContentUriHandler; -import cx.ring.utils.DeviceUtils; import cx.ring.utils.ConversationPath; +import cx.ring.utils.DeviceUtils; import cx.ring.utils.MediaButtonsHelper; import cx.ring.views.AvatarDrawable; -import io.reactivex.Completable; -import io.reactivex.Single; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.CompositeDisposable; -import io.reactivex.schedulers.Schedulers; +import cx.ring.views.AvatarFactory; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.core.Completable; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.disposables.CompositeDisposable; +import io.reactivex.rxjava3.schedulers.Schedulers; import static android.app.Activity.RESULT_OK; diff --git a/ring-android/app/src/main/java/cx/ring/fragments/GeneralAccountPresenter.java b/ring-android/app/src/main/java/cx/ring/fragments/GeneralAccountPresenter.java index ff00edfe7a765688be044b27a8022cd96da6114b..32690a975aa3344dbe1d7ac5c899d373f5104ff2 100644 --- a/ring-android/app/src/main/java/cx/ring/fragments/GeneralAccountPresenter.java +++ b/ring-android/app/src/main/java/cx/ring/fragments/GeneralAccountPresenter.java @@ -31,7 +31,8 @@ import net.jami.mvp.RootPresenter; import net.jami.services.AccountService; import net.jami.services.HardwareService; import net.jami.services.PreferencesService; -import io.reactivex.Scheduler; + +import io.reactivex.rxjava3.core.Scheduler; public class GeneralAccountPresenter extends RootPresenter<GeneralAccountView> { diff --git a/ring-android/app/src/main/java/cx/ring/fragments/LocationSharingFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/LocationSharingFragment.java index 05714a4e66e05c44d80b1f82dd93731a9e3e6267..0e5147747ee8b97bbfaa68e69184bde0baa5d8c4 100644 --- a/ring-android/app/src/main/java/cx/ring/fragments/LocationSharingFragment.java +++ b/ring-android/app/src/main/java/cx/ring/fragments/LocationSharingFragment.java @@ -82,12 +82,12 @@ import cx.ring.databinding.FragLocationSharingBinding; import cx.ring.services.LocationSharingService; import cx.ring.utils.ConversationPath; import cx.ring.utils.TouchClickListener; -import io.reactivex.Observable; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.CompositeDisposable; -import io.reactivex.disposables.Disposable; -import io.reactivex.subjects.BehaviorSubject; -import io.reactivex.subjects.Subject; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.disposables.CompositeDisposable; +import io.reactivex.rxjava3.disposables.Disposable; +import io.reactivex.rxjava3.subjects.BehaviorSubject; +import io.reactivex.rxjava3.subjects.Subject; public class LocationSharingFragment extends Fragment { private static final String TAG = LocationSharingFragment.class.getSimpleName(); diff --git a/ring-android/app/src/main/java/cx/ring/fragments/MediaPreferencePresenter.java b/ring-android/app/src/main/java/cx/ring/fragments/MediaPreferencePresenter.java index ca58826315004c66cd43ba6e23e8189838dccf9f..15085da4d8e9e6f5a73e00a6766790d80f086798 100644 --- a/ring-android/app/src/main/java/cx/ring/fragments/MediaPreferencePresenter.java +++ b/ring-android/app/src/main/java/cx/ring/fragments/MediaPreferencePresenter.java @@ -32,7 +32,8 @@ import net.jami.model.ConfigKey; import net.jami.mvp.RootPresenter; import net.jami.services.AccountService; import net.jami.services.DeviceRuntimeService; -import io.reactivex.Scheduler; + +import io.reactivex.rxjava3.core.Scheduler; public class MediaPreferencePresenter extends RootPresenter<MediaPreferenceView> { diff --git a/ring-android/app/src/main/java/cx/ring/fragments/ShareWithFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/ShareWithFragment.java index fd739b2ee5b637c6f9147511727c52fe978eeb38..3671a92890fd3c224d6fd5d068668e04358f7516 100644 --- a/ring-android/app/src/main/java/cx/ring/fragments/ShareWithFragment.java +++ b/ring-android/app/src/main/java/cx/ring/fragments/ShareWithFragment.java @@ -50,8 +50,8 @@ import cx.ring.client.ConversationActivity; import cx.ring.databinding.FragSharewithBinding; import cx.ring.utils.ConversationPath; import cx.ring.viewholders.SmartListViewHolder; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.disposables.CompositeDisposable; public class ShareWithFragment extends Fragment { private final static String TAG = ShareWithFragment.class.getSimpleName(); diff --git a/ring-android/app/src/main/java/cx/ring/fragments/SmartListFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/SmartListFragment.java index 8984f90944ed74cb240af7ce8606e4b6b2d7494d..0e223106bb3b1137c5b8bc6f277136c1dd7b2fa5 100644 --- a/ring-android/app/src/main/java/cx/ring/fragments/SmartListFragment.java +++ b/ring-android/app/src/main/java/cx/ring/fragments/SmartListFragment.java @@ -74,7 +74,7 @@ import cx.ring.utils.ClipboardHelper; import cx.ring.utils.ConversationPath; import cx.ring.utils.DeviceUtils; import cx.ring.viewholders.SmartListViewHolder; -import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.rxjava3.disposables.CompositeDisposable; public class SmartListFragment extends BaseSupportFragment<SmartListPresenter> implements SearchView.OnQueryTextListener, SmartListViewHolder.SmartListListeners, diff --git a/ring-android/app/src/main/java/cx/ring/service/DRingService.java b/ring-android/app/src/main/java/cx/ring/service/DRingService.java index 743ac70b260c00fc87ac42947294ebea3f3263fe..7961014f7422fcf9559b839083b63940d9798597 100644 --- a/ring-android/app/src/main/java/cx/ring/service/DRingService.java +++ b/ring-android/app/src/main/java/cx/ring/service/DRingService.java @@ -74,7 +74,7 @@ import net.jami.services.PreferencesService; import cx.ring.tv.call.TVCallActivity; import cx.ring.utils.ConversationPath; import cx.ring.utils.DeviceUtils; -import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.rxjava3.disposables.CompositeDisposable; public class DRingService extends Service { private static final String TAG = DRingService.class.getSimpleName(); diff --git a/ring-android/app/src/main/java/cx/ring/services/CameraService.java b/ring-android/app/src/main/java/cx/ring/services/CameraService.java index 711390b920372d4f8d1008040befe6029ad524ba..5dbf140e4dae705b7f60f62472d5b453cb39b719 100644 --- a/ring-android/app/src/main/java/cx/ring/services/CameraService.java +++ b/ring-android/app/src/main/java/cx/ring/services/CameraService.java @@ -73,13 +73,13 @@ import net.jami.daemon.StringMap; import net.jami.daemon.UintVect; import net.jami.utils.Tuple; import cx.ring.views.AutoFitTextureView; -import io.reactivex.Completable; -import io.reactivex.Maybe; -import io.reactivex.Observable; -import io.reactivex.Single; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.subjects.BehaviorSubject; -import io.reactivex.subjects.Subject; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.core.Completable; +import io.reactivex.rxjava3.core.Maybe; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.subjects.BehaviorSubject; +import io.reactivex.rxjava3.subjects.Subject; public class CameraService { private static final String TAG = CameraService.class.getSimpleName(); diff --git a/ring-android/app/src/main/java/cx/ring/services/ContactServiceImpl.java b/ring-android/app/src/main/java/cx/ring/services/ContactServiceImpl.java index 91d412c9bb1340d22915d1a779bf9e42e2bddd8e..cf9cccf02fcd9ab045f0a311d42890a15bdf30b1 100644 --- a/ring-android/app/src/main/java/cx/ring/services/ContactServiceImpl.java +++ b/ring-android/app/src/main/java/cx/ring/services/ContactServiceImpl.java @@ -47,9 +47,9 @@ import javax.inject.Inject; import cx.ring.utils.AndroidFileUtils; import cx.ring.views.AvatarFactory; import ezvcard.VCard; -import io.reactivex.Completable; -import io.reactivex.Single; -import io.reactivex.schedulers.Schedulers; +import io.reactivex.rxjava3.core.Completable; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.schedulers.Schedulers; public class ContactServiceImpl extends ContactService { diff --git a/ring-android/app/src/main/java/cx/ring/services/HardwareServiceImpl.java b/ring-android/app/src/main/java/cx/ring/services/HardwareServiceImpl.java index 5800dac5accd8616f20093efed050fea2c632448..e5ec578666b374d023091f69c7de26e261eaf22d 100644 --- a/ring-android/app/src/main/java/cx/ring/services/HardwareServiceImpl.java +++ b/ring-android/app/src/main/java/cx/ring/services/HardwareServiceImpl.java @@ -56,9 +56,10 @@ import cx.ring.utils.BluetoothWrapper; import net.jami.services.HardwareService; import net.jami.utils.Log; import cx.ring.utils.Ringer; +import io.reactivex.rxjava3.core.Completable; +import io.reactivex.rxjava3.core.Observable; + import net.jami.utils.Tuple; -import io.reactivex.Completable; -import io.reactivex.Observable; public class HardwareServiceImpl extends HardwareService implements AudioManager.OnAudioFocusChangeListener, BluetoothWrapper.BluetoothChangeListener { diff --git a/ring-android/app/src/main/java/cx/ring/services/LocationSharingService.java b/ring-android/app/src/main/java/cx/ring/services/LocationSharingService.java index def031e9f9880d9215443afedd7ac735f960dbb5..334b2da524f81641c472f733ba9bd6a1d2ce0b9c 100644 --- a/ring-android/app/src/main/java/cx/ring/services/LocationSharingService.java +++ b/ring-android/app/src/main/java/cx/ring/services/LocationSharingService.java @@ -71,15 +71,15 @@ import net.jami.services.AccountService; import net.jami.services.CallService; import cx.ring.utils.ConversationPath; -import io.reactivex.Observable; -import io.reactivex.ObservableSource; -import io.reactivex.Observer; -import io.reactivex.Single; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.CompositeDisposable; -import io.reactivex.schedulers.Schedulers; -import io.reactivex.subjects.BehaviorSubject; -import io.reactivex.subjects.Subject; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.ObservableSource; +import io.reactivex.rxjava3.core.Observer; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.disposables.CompositeDisposable; +import io.reactivex.rxjava3.schedulers.Schedulers; +import io.reactivex.rxjava3.subjects.BehaviorSubject; +import io.reactivex.rxjava3.subjects.Subject; public class LocationSharingService extends Service implements LocationListener { private static final String TAG = "LocationSharingService"; @@ -103,7 +103,7 @@ public class LocationSharingService extends Service implements LocationListener private boolean started = false; private LocationManager mLocationManager; - private NotificationManager mNoticationManager; + private NotificationManager mNotificationManager; private SharedPreferences mPreferences; private Handler mHandler; @@ -126,10 +126,10 @@ public class LocationSharingService extends Service implements LocationListener public Observable<Long> getContactSharingExpiration(ConversationPath path) { return Observable.timer(1, TimeUnit.SECONDS, AndroidSchedulers.mainThread()) - .startWith(0L) + .startWithItem(0L) .repeat() .map(i -> contactLocationShare.get(path).getTime() - SystemClock.elapsedRealtime()) - .onErrorResumeNext((ObservableSource<Long>) Observer::onComplete); + .onErrorComplete(); } @Override @@ -137,7 +137,7 @@ public class LocationSharingService extends Service implements LocationListener ((JamiApplication) getApplication()).getInjectionComponent().inject(this); mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); - mNoticationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); mPreferences = getSharedPreferences(PREFERENCES_LOCATION, Context.MODE_PRIVATE); mHandler = new Handler(getMainLooper()); String posLongitude = mPreferences.getString(PREFERENCES_KEY_POS_LONG, null); @@ -220,7 +220,7 @@ public class LocationSharingService extends Service implements LocationListener })); } else { mDisposableBag.add(getNotification(now) - .subscribe(notification -> mNoticationManager.notify(NOTIF_SYNC_SERVICE_ID, notification))); + .subscribe(notification -> mNotificationManager.notify(NOTIF_SYNC_SERVICE_ID, notification))); } } else if (ACTION_STOP.equals(action)) { @@ -253,7 +253,7 @@ public class LocationSharingService extends Service implements LocationListener started = false; } else { mDisposableBag.add(getNotification(now) - .subscribe(notification -> mNoticationManager.notify(NOTIF_SYNC_SERVICE_ID, notification))); + .subscribe(notification -> mNotificationManager.notify(NOTIF_SYNC_SERVICE_ID, notification))); } } return START_NOT_STICKY; @@ -382,7 +382,7 @@ public class LocationSharingService extends Service implements LocationListener started = false; } else if (changed) { mDisposableBag.add(getNotification(now.getTime()) - .subscribe(notification -> mNoticationManager.notify(NOTIF_SYNC_SERVICE_ID, notification))); + .subscribe(notification -> mNotificationManager.notify(NOTIF_SYNC_SERVICE_ID, notification))); } } @@ -391,7 +391,7 @@ public class LocationSharingService extends Service implements LocationListener return; long now = SystemClock.uptimeMillis(); mDisposableBag.add(getNotification(now) - .subscribe(notification -> mNoticationManager.notify(NOTIF_SYNC_SERVICE_ID, notification))); + .subscribe(notification -> mNotificationManager.notify(NOTIF_SYNC_SERVICE_ID, notification))); mHandler.postAtTime(this::refreshNotificationTimer, now + (30 * 1000)); } diff --git a/ring-android/app/src/main/java/cx/ring/services/VCardServiceImpl.java b/ring-android/app/src/main/java/cx/ring/services/VCardServiceImpl.java index 098259f9e8521a7c9d8b417ee6cb7f1e10c12679..f7e860f4d0cbcdc498706d0287317c9ef806840b 100644 --- a/ring-android/app/src/main/java/cx/ring/services/VCardServiceImpl.java +++ b/ring-android/app/src/main/java/cx/ring/services/VCardServiceImpl.java @@ -38,9 +38,9 @@ import ezvcard.VCard; import ezvcard.parameter.ImageType; import ezvcard.property.Photo; import ezvcard.property.RawProperty; -import io.reactivex.Maybe; -import io.reactivex.Single; -import io.reactivex.schedulers.Schedulers; +import io.reactivex.rxjava3.core.Maybe; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.schedulers.Schedulers; public class VCardServiceImpl extends VCardService { diff --git a/ring-android/app/src/main/java/cx/ring/settings/AccountFragment.java b/ring-android/app/src/main/java/cx/ring/settings/AccountFragment.java index cb7f393d9ef855da1b64d4636aadad8b0cf2bd6f..b712255c6fdb4dbb20c282ece639260266039b5b 100644 --- a/ring-android/app/src/main/java/cx/ring/settings/AccountFragment.java +++ b/ring-android/app/src/main/java/cx/ring/settings/AccountFragment.java @@ -40,8 +40,8 @@ import cx.ring.account.JamiAccountSummaryFragment; import cx.ring.application.JamiApplication; import cx.ring.client.HomeActivity; import cx.ring.databinding.FragAccountBinding; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.disposables.CompositeDisposable; import net.jami.services.AccountService; diff --git a/ring-android/app/src/main/java/cx/ring/settings/pluginssettings/PluginPathPreferenceFragment.java b/ring-android/app/src/main/java/cx/ring/settings/pluginssettings/PluginPathPreferenceFragment.java index 2638f6c70467e4bf26b6e8ae5b5b1f1736723cdc..56c1d2574b172fee43c6c00a7f01318ce7b932b1 100644 --- a/ring-android/app/src/main/java/cx/ring/settings/pluginssettings/PluginPathPreferenceFragment.java +++ b/ring-android/app/src/main/java/cx/ring/settings/pluginssettings/PluginPathPreferenceFragment.java @@ -43,7 +43,7 @@ import cx.ring.R; import cx.ring.client.HomeActivity; import cx.ring.databinding.FragPluginsPathPreferenceBinding; import cx.ring.utils.AndroidFileUtils; -import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; public class PluginPathPreferenceFragment extends Fragment implements PathListAdapter.PathListItemListener { diff --git a/ring-android/app/src/main/java/cx/ring/settings/pluginssettings/PluginsListSettingsFragment.java b/ring-android/app/src/main/java/cx/ring/settings/pluginssettings/PluginsListSettingsFragment.java index 10eae2020f8fdea7d28139aee605649fff8600ca..0c503ca28695129898d935cf6201953b8c5aaaa6 100644 --- a/ring-android/app/src/main/java/cx/ring/settings/pluginssettings/PluginsListSettingsFragment.java +++ b/ring-android/app/src/main/java/cx/ring/settings/pluginssettings/PluginsListSettingsFragment.java @@ -30,8 +30,8 @@ import cx.ring.client.HomeActivity; import cx.ring.databinding.FragPluginsListSettingsBinding; import cx.ring.plugins.PluginUtils; import cx.ring.utils.AndroidFileUtils; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.disposables.CompositeDisposable; public class PluginsListSettingsFragment extends Fragment implements PluginsListAdapter.PluginListItemListener { diff --git a/ring-android/app/src/main/java/cx/ring/tv/account/TVAccountWizard.java b/ring-android/app/src/main/java/cx/ring/tv/account/TVAccountWizard.java index 433b6700361261cccc61a79d758f6f1dbce282cc..72a3921489d6b32185547830cb043ded83491d49 100644 --- a/ring-android/app/src/main/java/cx/ring/tv/account/TVAccountWizard.java +++ b/ring-android/app/src/main/java/cx/ring/tv/account/TVAccountWizard.java @@ -42,8 +42,8 @@ import net.jami.mvp.AccountCreationModel; import cx.ring.mvp.BaseActivity; import net.jami.utils.VCardUtils; import ezvcard.VCard; -import io.reactivex.Single; -import io.reactivex.schedulers.Schedulers; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.schedulers.Schedulers; public class TVAccountWizard extends BaseActivity<AccountWizardPresenter> diff --git a/ring-android/app/src/main/java/cx/ring/tv/account/TVProfileCreationFragment.java b/ring-android/app/src/main/java/cx/ring/tv/account/TVProfileCreationFragment.java index 1fa905d90af77e2e1f513da4b4494b434ff6893f..e844557cced5f5a5999e30bfbd02390da67082af 100644 --- a/ring-android/app/src/main/java/cx/ring/tv/account/TVProfileCreationFragment.java +++ b/ring-android/app/src/main/java/cx/ring/tv/account/TVProfileCreationFragment.java @@ -53,7 +53,7 @@ import net.jami.mvp.AccountCreationModel; import cx.ring.tv.camera.CustomCameraActivity; import cx.ring.utils.AndroidFileUtils; import cx.ring.views.AvatarDrawable; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Single; public class TVProfileCreationFragment extends JamiGuidedStepFragment<ProfileCreationPresenter> implements ProfileCreationView { diff --git a/ring-android/app/src/main/java/cx/ring/tv/account/TVProfileEditingFragment.java b/ring-android/app/src/main/java/cx/ring/tv/account/TVProfileEditingFragment.java index 3300106f8490b35fe176a2bf7585740b15cebd4e..646aa46eb9f2b8df8509c4a9101d798592b0fba0 100644 --- a/ring-android/app/src/main/java/cx/ring/tv/account/TVProfileEditingFragment.java +++ b/ring-android/app/src/main/java/cx/ring/tv/account/TVProfileEditingFragment.java @@ -49,9 +49,9 @@ import cx.ring.tv.camera.CustomCameraActivity; import cx.ring.utils.AndroidFileUtils; import cx.ring.utils.BitmapUtils; import cx.ring.views.AvatarDrawable; -import io.reactivex.Single; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.schedulers.Schedulers; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.schedulers.Schedulers; public class TVProfileEditingFragment extends JamiGuidedStepFragment<HomeNavigationPresenter> implements HomeNavigationView { diff --git a/ring-android/app/src/main/java/cx/ring/tv/account/TVShareFragment.java b/ring-android/app/src/main/java/cx/ring/tv/account/TVShareFragment.java index 45d56eb9183db1dee7bf80b1cdeb9b4291ebbc2d..5dc6994b1d2901ca75352241848016ec48cc2f8d 100644 --- a/ring-android/app/src/main/java/cx/ring/tv/account/TVShareFragment.java +++ b/ring-android/app/src/main/java/cx/ring/tv/account/TVShareFragment.java @@ -40,8 +40,8 @@ import net.jami.share.ShareViewModel; import net.jami.utils.Log; import net.jami.utils.QRCodeUtils; import cx.ring.views.AvatarDrawable; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.disposables.CompositeDisposable; public class TVShareFragment extends BaseSupportFragment<SharePresenter> implements GenericView<ShareViewModel> { diff --git a/ring-android/app/src/main/java/cx/ring/tv/call/TVCallFragment.java b/ring-android/app/src/main/java/cx/ring/tv/call/TVCallFragment.java index 6c411718f0f7b8eb6f8b99af0839201451c663fd..39b372e7fc49a3b18046c9f1e957a7a1d108df8a 100644 --- a/ring-android/app/src/main/java/cx/ring/tv/call/TVCallFragment.java +++ b/ring-android/app/src/main/java/cx/ring/tv/call/TVCallFragment.java @@ -94,7 +94,6 @@ import cx.ring.utils.ActionHelper; import cx.ring.utils.ContentUriHandler; import cx.ring.utils.ConversationPath; import cx.ring.views.AvatarDrawable; -import io.reactivex.disposables.CompositeDisposable; public class TVCallFragment extends BaseSupportFragment<CallPresenter> implements CallView { @@ -112,7 +111,6 @@ public class TVCallFragment extends BaseSupportFragment<CallPresenter> implement // Screen wake lock for incoming call private Runnable runnable; - private final CompositeDisposable mCompositeDisposable = new CompositeDisposable(); private int mPreviewWidth = 720, mPreviewHeight = 1280; private int mPreviewWidthRot = 720, mPreviewHeightRot = 1280; private PowerManager.WakeLock mScreenWakeLock; @@ -264,7 +262,6 @@ public class TVCallFragment extends BaseSupportFragment<CallPresenter> implement @Override public void onDestroyView() { super.onDestroyView(); - mCompositeDisposable.clear(); if (mScreenWakeLock != null && mScreenWakeLock.isHeld()) { mScreenWakeLock.release(); } diff --git a/ring-android/app/src/main/java/cx/ring/tv/camera/CustomCameraActivity.java b/ring-android/app/src/main/java/cx/ring/tv/camera/CustomCameraActivity.java index bb58ab5364ec081fca8cbce5a5234ef8f472e659..2c503874d315cc4d48a2d7cb970bf0ca986fd162 100644 --- a/ring-android/app/src/main/java/cx/ring/tv/camera/CustomCameraActivity.java +++ b/ring-android/app/src/main/java/cx/ring/tv/camera/CustomCameraActivity.java @@ -45,10 +45,10 @@ import cx.ring.R; import cx.ring.databinding.CamerapickerBinding; import cx.ring.utils.AndroidFileUtils; import cx.ring.utils.ContentUriHandler; -import io.reactivex.Single; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.CompositeDisposable; -import io.reactivex.schedulers.Schedulers; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.disposables.CompositeDisposable; +import io.reactivex.rxjava3.schedulers.Schedulers; @SuppressWarnings("deprecation") public class CustomCameraActivity extends Activity { diff --git a/ring-android/app/src/main/java/cx/ring/tv/contact/TVContactPresenter.java b/ring-android/app/src/main/java/cx/ring/tv/contact/TVContactPresenter.java index 527218aaea8174e377065b020a298935fb238ee8..410f956e02958e2cc82136795eace096a1cd2ff8 100644 --- a/ring-android/app/src/main/java/cx/ring/tv/contact/TVContactPresenter.java +++ b/ring-android/app/src/main/java/cx/ring/tv/contact/TVContactPresenter.java @@ -34,8 +34,9 @@ import net.jami.services.AccountService; import net.jami.services.VCardService; import net.jami.smartlist.SmartListViewModel; import cx.ring.utils.ConversationPath; +import io.reactivex.rxjava3.core.Scheduler; + import net.jami.utils.VCardUtils; -import io.reactivex.Scheduler; public class TVContactPresenter extends RootPresenter<TVContactView> { diff --git a/ring-android/app/src/main/java/cx/ring/tv/conversation/TvConversationAdapter.java b/ring-android/app/src/main/java/cx/ring/tv/conversation/TvConversationAdapter.java index 0eb649d75176ebd718088621a22119b42fc83cfa..048f508ffd320562035b3662f0077d4caa7111a1 100644 --- a/ring-android/app/src/main/java/cx/ring/tv/conversation/TvConversationAdapter.java +++ b/ring-android/app/src/main/java/cx/ring/tv/conversation/TvConversationAdapter.java @@ -84,9 +84,9 @@ import cx.ring.utils.ContentUriHandler; import cx.ring.utils.GlideApp; import cx.ring.utils.GlideOptions; import cx.ring.utils.ResourceMapper; -import io.reactivex.Observable; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.schedulers.Schedulers; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.schedulers.Schedulers; public class TvConversationAdapter extends RecyclerView.Adapter<TvConversationViewHolder> { private final static String TAG = TvConversationAdapter.class.getSimpleName(); @@ -134,7 +134,7 @@ public class TvConversationAdapter extends RecyclerView.Adapter<TvConversationVi timestampUpdateTimer = Observable.interval(10, TimeUnit.SECONDS) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .startWith(0L); + .startWithItem(0L); } /** @@ -584,7 +584,7 @@ public class TvConversationAdapter extends RecyclerView.Adapter<TvConversationVi viewHolder.compositeDisposable.add(Observable.interval(1L, TimeUnit.SECONDS) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .startWith(0L) + .startWithItem(0L) .subscribe(t -> { int pS = player.getCurrentPosition() / 1000; int dS = player.getDuration() / 1000; diff --git a/ring-android/app/src/main/java/cx/ring/tv/conversation/TvConversationFragment.java b/ring-android/app/src/main/java/cx/ring/tv/conversation/TvConversationFragment.java index 0e93ea0086bf5a22a46c5c337971415e036bcd82..23c5ff6c924f2494ab6041aa43ca76f52b9971af 100644 --- a/ring-android/app/src/main/java/cx/ring/tv/conversation/TvConversationFragment.java +++ b/ring-android/app/src/main/java/cx/ring/tv/conversation/TvConversationFragment.java @@ -81,10 +81,10 @@ import cx.ring.utils.ContentUriHandler; import cx.ring.utils.ConversationPath; import net.jami.utils.StringUtils; import cx.ring.views.AvatarDrawable; -import io.reactivex.Completable; -import io.reactivex.Single; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.core.Completable; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.disposables.CompositeDisposable; public class TvConversationFragment extends BaseSupportFragment<ConversationPresenter> implements ConversationView { private static final String TAG = TvConversationFragment.class.getSimpleName(); diff --git a/ring-android/app/src/main/java/cx/ring/tv/conversation/TvConversationViewHolder.java b/ring-android/app/src/main/java/cx/ring/tv/conversation/TvConversationViewHolder.java index 1a038a7736e630a805f389f9ff58b55d1e1c42d9..de78c6acf8d85f2ba4e4f6dfaf7c2e85c1c933d5 100644 --- a/ring-android/app/src/main/java/cx/ring/tv/conversation/TvConversationViewHolder.java +++ b/ring-android/app/src/main/java/cx/ring/tv/conversation/TvConversationViewHolder.java @@ -33,7 +33,7 @@ import android.widget.TextView; import androidx.recyclerview.widget.RecyclerView; import cx.ring.R; -import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.rxjava3.disposables.CompositeDisposable; public class TvConversationViewHolder extends RecyclerView.ViewHolder { public TextView mMsgTxt; diff --git a/ring-android/app/src/main/java/cx/ring/tv/main/HomeActivity.java b/ring-android/app/src/main/java/cx/ring/tv/main/HomeActivity.java index e24566ffe76e4ab52690373fb2ce8ffca3cb5ba4..d1b351edc7e306956b3ca690f9aadb0a61ea986e 100644 --- a/ring-android/app/src/main/java/cx/ring/tv/main/HomeActivity.java +++ b/ring-android/app/src/main/java/cx/ring/tv/main/HomeActivity.java @@ -34,8 +34,8 @@ import javax.inject.Inject; import cx.ring.R; import cx.ring.application.JamiApplication; import cx.ring.tv.account.TVAccountWizard; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.disposables.CompositeDisposable; public class HomeActivity extends FragmentActivity { private BackgroundManager mBackgroundManager; diff --git a/ring-android/app/src/main/java/cx/ring/tv/main/MainFragment.java b/ring-android/app/src/main/java/cx/ring/tv/main/MainFragment.java index 92d37c83f48721617b4baee89bd4ef3b0a619d13..93a909e581e0936bfe56dd48e62a846148780fdf 100644 --- a/ring-android/app/src/main/java/cx/ring/tv/main/MainFragment.java +++ b/ring-android/app/src/main/java/cx/ring/tv/main/MainFragment.java @@ -92,11 +92,11 @@ import cx.ring.utils.ContentUriHandler; import cx.ring.utils.ConversationPath; import net.jami.utils.QRCodeUtils; import cx.ring.views.AvatarDrawable; -import io.reactivex.Observable; -import io.reactivex.Single; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.CompositeDisposable; -import io.reactivex.schedulers.Schedulers; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.disposables.CompositeDisposable; +import io.reactivex.rxjava3.schedulers.Schedulers; public class MainFragment extends BaseBrowseFragment<MainPresenter> implements MainView { diff --git a/ring-android/app/src/main/java/cx/ring/tv/main/MainPresenter.java b/ring-android/app/src/main/java/cx/ring/tv/main/MainPresenter.java index e3df05af627bff00d19c76fbd29e0381ce78e6d4..c3515f2a8264fcc0b6680a3a4dda220e1c05f7a1 100644 --- a/ring-android/app/src/main/java/cx/ring/tv/main/MainPresenter.java +++ b/ring-android/app/src/main/java/cx/ring/tv/main/MainPresenter.java @@ -34,8 +34,9 @@ import net.jami.mvp.RootPresenter; import net.jami.navigation.HomeNavigationViewModel; import net.jami.services.AccountService; import net.jami.smartlist.SmartListViewModel; -import io.reactivex.Observable; -import io.reactivex.Scheduler; + +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Scheduler; public class MainPresenter extends RootPresenter<MainView> { diff --git a/ring-android/app/src/main/java/cx/ring/tv/search/ContactSearchPresenter.java b/ring-android/app/src/main/java/cx/ring/tv/search/ContactSearchPresenter.java index 1c5edc46bd5dfb6e53fef746e8783bc44d91f630..ba0994e23399ff396d8c2d8e4eed896fdf781266 100644 --- a/ring-android/app/src/main/java/cx/ring/tv/search/ContactSearchPresenter.java +++ b/ring-android/app/src/main/java/cx/ring/tv/search/ContactSearchPresenter.java @@ -33,8 +33,9 @@ import net.jami.services.AccountService; import net.jami.services.HardwareService; import net.jami.services.VCardService; import net.jami.smartlist.SmartListViewModel; -import io.reactivex.Scheduler; -import io.reactivex.subjects.PublishSubject; + +import io.reactivex.rxjava3.core.Scheduler; +import io.reactivex.rxjava3.subjects.PublishSubject; public class ContactSearchPresenter extends RootPresenter<ContactSearchView> { diff --git a/ring-android/app/src/main/java/cx/ring/utils/AndroidFileUtils.java b/ring-android/app/src/main/java/cx/ring/utils/AndroidFileUtils.java index 73455d21b64d7395b1fdaf3eacbaee591ac78574..8e0299a441ee099ac7f40d52fbf14113126a99dc 100644 --- a/ring-android/app/src/main/java/cx/ring/utils/AndroidFileUtils.java +++ b/ring-android/app/src/main/java/cx/ring/utils/AndroidFileUtils.java @@ -55,9 +55,9 @@ import androidx.annotation.NonNull; import net.jami.model.Conversation; import net.jami.utils.FileUtils; -import io.reactivex.Completable; -import io.reactivex.Single; -import io.reactivex.schedulers.Schedulers; +import io.reactivex.rxjava3.core.Completable; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.schedulers.Schedulers; public class AndroidFileUtils { @@ -310,7 +310,8 @@ public class AndroidFileUtils { * @param uri uri of the * @return Single<File> which points to the newly created copy in the cache */ - public static @NonNull Single<File> getCacheFile(@NonNull Context context, @NonNull Uri uri) { + public static @NonNull + Single<File> getCacheFile(@NonNull Context context, @NonNull Uri uri) { ContentResolver contentResolver = context.getContentResolver(); File cacheDir = context.getCacheDir(); return Single.fromCallable(() -> { diff --git a/ring-android/app/src/main/java/cx/ring/viewholders/SmartListViewHolder.java b/ring-android/app/src/main/java/cx/ring/viewholders/SmartListViewHolder.java index 61e03b2d4ee396c608b6654d6fa1b5b80b94ab26..d3e6d16cd36c8888fd0b9af6c260b87757d02aa9 100644 --- a/ring-android/app/src/main/java/cx/ring/viewholders/SmartListViewHolder.java +++ b/ring-android/app/src/main/java/cx/ring/viewholders/SmartListViewHolder.java @@ -22,6 +22,7 @@ package cx.ring.viewholders; import android.content.Context; import android.graphics.Typeface; import android.text.format.DateUtils; +import android.util.Log; import android.view.View; import androidx.annotation.NonNull; @@ -32,15 +33,12 @@ import net.jami.model.ContactEvent; import net.jami.model.Interaction; import net.jami.smartlist.SmartListViewModel; -import java.util.concurrent.TimeUnit; - import cx.ring.R; import cx.ring.databinding.ItemSmartlistBinding; import cx.ring.databinding.ItemSmartlistHeaderBinding; import cx.ring.utils.ResourceMapper; import cx.ring.views.AvatarDrawable; -import io.reactivex.Observable; -import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.rxjava3.disposables.CompositeDisposable; public class SmartListViewHolder extends RecyclerView.ViewHolder { public final ItemSmartlistBinding binding; @@ -66,13 +64,11 @@ public class SmartListViewHolder extends RecyclerView.ViewHolder { compositeDisposable.clear(); if (binding != null) { - compositeDisposable.add(Observable.create(e -> itemView.setOnClickListener(e::onNext)) - .throttleFirst(1000, TimeUnit.MILLISECONDS) - .subscribe(v -> clickListener.onItemClick(smartListViewModel))); - Observable<Boolean> isSelected = smartListViewModel.getSelected(); - if (isSelected != null) { - compositeDisposable.add(isSelected.subscribe(binding.itemLayout::setActivated)); - } + itemView.setOnClickListener(v -> clickListener.onItemClick(smartListViewModel)); + compositeDisposable.add(smartListViewModel.getSelected().subscribe(selected -> { + Log.w("SmartListViewHolder", "selected " + selected + " " + smartListViewModel.getContactName()); + binding.itemLayout.setActivated(selected); + })); itemView.setOnLongClickListener(v -> { clickListener.onItemLongClick(smartListViewModel); return true; diff --git a/ring-android/app/src/main/java/cx/ring/views/AvatarDrawable.java b/ring-android/app/src/main/java/cx/ring/views/AvatarDrawable.java index 66987a724139ea64b3edfd8980958afa8bdeb48f..b8ec20818c1050a3337a0aea2ff0f72067571a16 100644 --- a/ring-android/app/src/main/java/cx/ring/views/AvatarDrawable.java +++ b/ring-android/app/src/main/java/cx/ring/views/AvatarDrawable.java @@ -35,7 +35,6 @@ import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.graphics.drawable.VectorDrawable; import android.text.TextUtils; -import android.util.Log; import android.util.TypedValue; import androidx.annotation.NonNull; @@ -55,7 +54,7 @@ import java.util.List; import cx.ring.R; import cx.ring.services.VCardServiceImpl; import cx.ring.utils.DeviceUtils; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Single; public class AvatarDrawable extends Drawable { private static final String TAG = AvatarDrawable.class.getSimpleName(); diff --git a/ring-android/app/src/main/java/cx/ring/views/AvatarFactory.java b/ring-android/app/src/main/java/cx/ring/views/AvatarFactory.java index dcb979b08c20f1893c6a0fdf647ac48a1dc6c248..59a0e59dca9868a0e0349e0bb654f0b449264bab 100644 --- a/ring-android/app/src/main/java/cx/ring/views/AvatarFactory.java +++ b/ring-android/app/src/main/java/cx/ring/views/AvatarFactory.java @@ -38,7 +38,7 @@ import net.jami.model.Conversation; import net.jami.smartlist.SmartListViewModel; import cx.ring.utils.BitmapUtils; import cx.ring.views.AvatarDrawable; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Single; public class AvatarFactory { diff --git a/ring-android/app/src/main/java/cx/ring/views/ConversationViewHolder.java b/ring-android/app/src/main/java/cx/ring/views/ConversationViewHolder.java index 10b4c2152089b879999aa377ae8e1ff8a524920e..12eaa44282625546acc535a7574a1364b220970b 100644 --- a/ring-android/app/src/main/java/cx/ring/views/ConversationViewHolder.java +++ b/ring-android/app/src/main/java/cx/ring/views/ConversationViewHolder.java @@ -35,7 +35,7 @@ import android.widget.TextView; import cx.ring.R; import cx.ring.adapters.ConversationAdapter; -import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.rxjava3.disposables.CompositeDisposable; public class ConversationViewHolder extends RecyclerView.ViewHolder { public ConversationAdapter.MessageType type; diff --git a/ring-android/app/src/main/java/cx/ring/views/ParticipantView.java b/ring-android/app/src/main/java/cx/ring/views/ParticipantView.java index 831aad32bb7079661d2181448d2c8f8345fbc292..057ba1c775f3a65acf1a1710397f5537a992864b 100644 --- a/ring-android/app/src/main/java/cx/ring/views/ParticipantView.java +++ b/ring-android/app/src/main/java/cx/ring/views/ParticipantView.java @@ -4,7 +4,7 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import cx.ring.databinding.ItemConferenceParticipantBinding; -import io.reactivex.disposables.Disposable; +import io.reactivex.rxjava3.disposables.Disposable; public class ParticipantView extends RecyclerView.ViewHolder { public final ItemConferenceParticipantBinding binding; diff --git a/ring-android/libringclient/build.gradle b/ring-android/libringclient/build.gradle index 7ab42b7dce9c01e66b9f549f4efd3119ff674550..1c2cde6f87423b9110c01497580c719931f30293 100644 --- a/ring-android/libringclient/build.gradle +++ b/ring-android/libringclient/build.gradle @@ -20,7 +20,7 @@ dependencies { testImplementation 'junit:junit:4.13.2' // RxJava - implementation 'io.reactivex.rxjava2:rxjava:2.2.21' + implementation 'io.reactivex.rxjava3:rxjava:3.0.10' // gson implementation 'com.google.code.gson:gson:2.8.7' diff --git a/ring-android/libringclient/src/main/java/net/jami/account/AccountWizardPresenter.java b/ring-android/libringclient/src/main/java/net/jami/account/AccountWizardPresenter.java index fb55e4fd9684541672ce7dc54bcf66b3c1af6a38..0a8722aad1b808242c45a7246df1dd77102a4e86 100644 --- a/ring-android/libringclient/src/main/java/net/jami/account/AccountWizardPresenter.java +++ b/ring-android/libringclient/src/main/java/net/jami/account/AccountWizardPresenter.java @@ -19,10 +19,6 @@ */ package net.jami.account; -import net.jami.services.AccountService; -import net.jami.services.DeviceRuntimeService; -import net.jami.services.PreferencesService; - import java.util.HashMap; import java.util.Map; @@ -35,20 +31,24 @@ import net.jami.model.ConfigKey; import net.jami.model.Settings; import net.jami.mvp.AccountCreationModel; import net.jami.mvp.RootPresenter; +import net.jami.services.AccountService; +import net.jami.services.DeviceRuntimeService; +import net.jami.services.PreferencesService; import net.jami.utils.Log; import net.jami.utils.StringUtils; -import io.reactivex.Observable; -import io.reactivex.Scheduler; -import io.reactivex.Single; -import io.reactivex.subjects.BehaviorSubject; + +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Scheduler; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.subjects.BehaviorSubject; public class AccountWizardPresenter extends RootPresenter<net.jami.account.AccountWizardView> { public static final String TAG = AccountWizardPresenter.class.getSimpleName(); - private final net.jami.services.AccountService mAccountService; - private final net.jami.services.PreferencesService mPreferences; - private final net.jami.services.DeviceRuntimeService mDeviceService; + private final AccountService mAccountService; + private final PreferencesService mPreferences; + private final DeviceRuntimeService mDeviceService; private final Scheduler mUiScheduler; //private boolean mCreationError = false; @@ -56,7 +56,7 @@ public class AccountWizardPresenter extends RootPresenter<net.jami.account.Accou private String mAccountType; private AccountCreationModel mAccountCreationModel; - private Observable<net.jami.model.Account> newAccount; + private Observable<Account> newAccount; @Inject public AccountWizardPresenter(AccountService accountService, diff --git a/ring-android/libringclient/src/main/java/net/jami/account/AccountWizardView.java b/ring-android/libringclient/src/main/java/net/jami/account/AccountWizardView.java index 870113748c7e7a53e993d4e64cb2d224f01f3f8a..7d927c1a5b0b5b7e8639c9ae6fac51aa5b529dce 100644 --- a/ring-android/libringclient/src/main/java/net/jami/account/AccountWizardView.java +++ b/ring-android/libringclient/src/main/java/net/jami/account/AccountWizardView.java @@ -22,7 +22,7 @@ package net.jami.account; import net.jami.model.Account; import net.jami.mvp.AccountCreationModel; import ezvcard.VCard; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Single; public interface AccountWizardView { diff --git a/ring-android/libringclient/src/main/java/net/jami/account/JamiAccountCreationPresenter.java b/ring-android/libringclient/src/main/java/net/jami/account/JamiAccountCreationPresenter.java index d8217fe8a5ba0ab2395df44eda1bedf3af052860..f09359c8dfd1506faa2f9d066f9d5faaaadd17a9 100644 --- a/ring-android/libringclient/src/main/java/net/jami/account/JamiAccountCreationPresenter.java +++ b/ring-android/libringclient/src/main/java/net/jami/account/JamiAccountCreationPresenter.java @@ -30,8 +30,9 @@ import javax.inject.Named; import net.jami.mvp.AccountCreationModel; import net.jami.mvp.RootPresenter; import net.jami.utils.StringUtils; -import io.reactivex.Scheduler; -import io.reactivex.subjects.PublishSubject; + +import io.reactivex.rxjava3.core.Scheduler; +import io.reactivex.rxjava3.subjects.PublishSubject; public class JamiAccountCreationPresenter extends RootPresenter<net.jami.account.JamiAccountCreationView> { diff --git a/ring-android/libringclient/src/main/java/net/jami/account/JamiAccountSummaryPresenter.java b/ring-android/libringclient/src/main/java/net/jami/account/JamiAccountSummaryPresenter.java index a0a1b5f9bcf8c368b73eba579fac7d5c05ab6204..88dd843b0a9de73386e555fe3ff560722069c815 100644 --- a/ring-android/libringclient/src/main/java/net/jami/account/JamiAccountSummaryPresenter.java +++ b/ring-android/libringclient/src/main/java/net/jami/account/JamiAccountSummaryPresenter.java @@ -38,9 +38,9 @@ import net.jami.utils.VCardUtils; import ezvcard.property.Photo; import ezvcard.property.RawProperty; import ezvcard.property.Uid; -import io.reactivex.Scheduler; -import io.reactivex.Single; -import io.reactivex.schedulers.Schedulers; +import io.reactivex.rxjava3.core.Scheduler; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.schedulers.Schedulers; public class JamiAccountSummaryPresenter extends RootPresenter<net.jami.account.JamiAccountSummaryView> { diff --git a/ring-android/libringclient/src/main/java/net/jami/account/LinkDevicePresenter.java b/ring-android/libringclient/src/main/java/net/jami/account/LinkDevicePresenter.java index 510d4d697b878e087824bfe5ffc7e536480d5a24..9c914ad711ce84c28990e20fdc12afceef49640f 100644 --- a/ring-android/libringclient/src/main/java/net/jami/account/LinkDevicePresenter.java +++ b/ring-android/libringclient/src/main/java/net/jami/account/LinkDevicePresenter.java @@ -30,7 +30,7 @@ import javax.inject.Named; import net.jami.model.Account; import net.jami.mvp.RootPresenter; -import io.reactivex.Scheduler; +import io.reactivex.rxjava3.core.Scheduler; public class LinkDevicePresenter extends RootPresenter<LinkDeviceView> { diff --git a/ring-android/libringclient/src/main/java/net/jami/account/ProfileCreationPresenter.java b/ring-android/libringclient/src/main/java/net/jami/account/ProfileCreationPresenter.java index e347c5393b348fb80a496ee271f71265d28239d2..ab2fb1e7d0d2ac1dcd7e36ee61933f80ceb8303c 100644 --- a/ring-android/libringclient/src/main/java/net/jami/account/ProfileCreationPresenter.java +++ b/ring-android/libringclient/src/main/java/net/jami/account/ProfileCreationPresenter.java @@ -27,8 +27,9 @@ import javax.inject.Inject; import net.jami.mvp.RootPresenter; import net.jami.utils.Log; -import io.reactivex.Scheduler; -import io.reactivex.Single; + +import io.reactivex.rxjava3.core.Scheduler; +import io.reactivex.rxjava3.core.Single; public class ProfileCreationPresenter extends RootPresenter<net.jami.account.ProfileCreationView> { diff --git a/ring-android/libringclient/src/main/java/net/jami/call/CallPresenter.java b/ring-android/libringclient/src/main/java/net/jami/call/CallPresenter.java index a11fe3eac0074fb85be835ebf81ff2eb3581dbe8..ddb94f4d034db0457b9e4d8ec36ecfcce01cdf06 100644 --- a/ring-android/libringclient/src/main/java/net/jami/call/CallPresenter.java +++ b/ring-android/libringclient/src/main/java/net/jami/call/CallPresenter.java @@ -45,14 +45,14 @@ import java.util.concurrent.TimeUnit; import javax.inject.Inject; import javax.inject.Named; -import io.reactivex.Maybe; -import io.reactivex.Observable; -import io.reactivex.Observer; -import io.reactivex.Scheduler; -import io.reactivex.annotations.NonNull; -import io.reactivex.disposables.Disposable; -import io.reactivex.subjects.BehaviorSubject; -import io.reactivex.subjects.Subject; +import io.reactivex.rxjava3.annotations.NonNull; +import io.reactivex.rxjava3.core.Maybe; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Observer; +import io.reactivex.rxjava3.core.Scheduler; +import io.reactivex.rxjava3.disposables.Disposable; +import io.reactivex.rxjava3.subjects.BehaviorSubject; +import io.reactivex.rxjava3.subjects.Subject; public class CallPresenter extends RootPresenter<CallView> { diff --git a/ring-android/libringclient/src/main/java/net/jami/contactrequests/BlockListPresenter.java b/ring-android/libringclient/src/main/java/net/jami/contactrequests/BlockListPresenter.java index 4fd93b32bf825684bffe0ac93b1dcfdd14dadf3c..ca74a14c6f8146f7680100d686852617b18d8a54 100644 --- a/ring-android/libringclient/src/main/java/net/jami/contactrequests/BlockListPresenter.java +++ b/ring-android/libringclient/src/main/java/net/jami/contactrequests/BlockListPresenter.java @@ -30,7 +30,8 @@ import net.jami.model.Contact; import net.jami.mvp.RootPresenter; import net.jami.services.AccountService; import net.jami.utils.Log; -import io.reactivex.Scheduler; + +import io.reactivex.rxjava3.core.Scheduler; public class BlockListPresenter extends RootPresenter<BlockListView> { static private final String TAG = BlockListPresenter.class.getSimpleName(); diff --git a/ring-android/libringclient/src/main/java/net/jami/contactrequests/ContactRequestsPresenter.java b/ring-android/libringclient/src/main/java/net/jami/contactrequests/ContactRequestsPresenter.java index 4c66792b5be28a8f39172e8cf9ae7f703d062255..03ff087a246bd567668ab93be1dfeefd0a4edd4d 100644 --- a/ring-android/libringclient/src/main/java/net/jami/contactrequests/ContactRequestsPresenter.java +++ b/ring-android/libringclient/src/main/java/net/jami/contactrequests/ContactRequestsPresenter.java @@ -32,9 +32,10 @@ import net.jami.mvp.RootPresenter; import net.jami.services.AccountService; import net.jami.smartlist.SmartListViewModel; import net.jami.utils.Log; -import io.reactivex.Observable; -import io.reactivex.Scheduler; -import io.reactivex.subjects.BehaviorSubject; + +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Scheduler; +import io.reactivex.rxjava3.subjects.BehaviorSubject; public class ContactRequestsPresenter extends RootPresenter<net.jami.contactrequests.ContactRequestsView> { diff --git a/ring-android/libringclient/src/main/java/net/jami/contactrequests/ContactRequestsView.java b/ring-android/libringclient/src/main/java/net/jami/contactrequests/ContactRequestsView.java index b94d7ad23488255e69df459d56a6a873c103a657..ca32ddac2f7a8f6663700109ce85f146d90b4350 100644 --- a/ring-android/libringclient/src/main/java/net/jami/contactrequests/ContactRequestsView.java +++ b/ring-android/libringclient/src/main/java/net/jami/contactrequests/ContactRequestsView.java @@ -24,7 +24,7 @@ import java.util.List; import net.jami.model.Uri; import net.jami.smartlist.SmartListViewModel; -import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.rxjava3.disposables.CompositeDisposable; public interface ContactRequestsView { diff --git a/ring-android/libringclient/src/main/java/net/jami/conversation/ConversationPresenter.java b/ring-android/libringclient/src/main/java/net/jami/conversation/ConversationPresenter.java index d106a517b89d4fa814f852ebc3bd87c46bb5892b..5463e3ca57602efe48eb2544288201c73d0551e5 100644 --- a/ring-android/libringclient/src/main/java/net/jami/conversation/ConversationPresenter.java +++ b/ring-android/libringclient/src/main/java/net/jami/conversation/ConversationPresenter.java @@ -50,12 +50,12 @@ import java.io.File; import javax.inject.Inject; import javax.inject.Named; -import io.reactivex.Observable; -import io.reactivex.Scheduler; -import io.reactivex.disposables.CompositeDisposable; -import io.reactivex.schedulers.Schedulers; -import io.reactivex.subjects.BehaviorSubject; -import io.reactivex.subjects.Subject; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Scheduler; +import io.reactivex.rxjava3.disposables.CompositeDisposable; +import io.reactivex.rxjava3.schedulers.Schedulers; +import io.reactivex.rxjava3.subjects.BehaviorSubject; +import io.reactivex.rxjava3.subjects.Subject; public class ConversationPresenter extends RootPresenter<ConversationView> { diff --git a/ring-android/libringclient/src/main/java/net/jami/facades/ConversationFacade.java b/ring-android/libringclient/src/main/java/net/jami/facades/ConversationFacade.java index 01aef0be3c8d08727c9f7db742f38feb069bc76f..bf4812873b6032209ea28c28ff1428a372b955ef 100644 --- a/ring-android/libringclient/src/main/java/net/jami/facades/ConversationFacade.java +++ b/ring-android/libringclient/src/main/java/net/jami/facades/ConversationFacade.java @@ -52,13 +52,13 @@ import java.util.concurrent.TimeUnit; import javax.inject.Inject; -import io.reactivex.Completable; -import io.reactivex.Observable; -import io.reactivex.Single; -import io.reactivex.disposables.CompositeDisposable; -import io.reactivex.schedulers.Schedulers; -import io.reactivex.subjects.PublishSubject; -import io.reactivex.subjects.Subject; +import io.reactivex.rxjava3.core.Completable; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.disposables.CompositeDisposable; +import io.reactivex.rxjava3.schedulers.Schedulers; +import io.reactivex.rxjava3.subjects.PublishSubject; +import io.reactivex.rxjava3.subjects.Subject; public class ConversationFacade { @@ -370,7 +370,7 @@ public class ConversationFacade { private Observable<SmartListViewModel> observeConversation(Account account, Conversation conversation, boolean hasPresence) { return Observable.merge(account.getConversationSubject() .filter(c -> c == conversation) - .startWith(conversation), + .startWithItem(conversation), mContactService .observeContact(conversation.getAccountId(), conversation.getContacts(), hasPresence)) .map(e -> new SmartListViewModel(conversation, hasPresence)); diff --git a/ring-android/libringclient/src/main/java/net/jami/model/Account.java b/ring-android/libringclient/src/main/java/net/jami/model/Account.java index eaabc395ab289d211a49b58f33e7b056468ca79f..c41dfaf8ac756e340568f5239bd1c86c475d517e 100644 --- a/ring-android/libringclient/src/main/java/net/jami/model/Account.java +++ b/ring-android/libringclient/src/main/java/net/jami/model/Account.java @@ -37,12 +37,13 @@ import java.util.Iterator; import java.util.List; import java.util.Map; -import io.reactivex.Maybe; -import io.reactivex.Observable; -import io.reactivex.Single; -import io.reactivex.subjects.BehaviorSubject; -import io.reactivex.subjects.PublishSubject; -import io.reactivex.subjects.Subject; +import ezvcard.VCard; +import io.reactivex.rxjava3.core.Maybe; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.subjects.BehaviorSubject; +import io.reactivex.rxjava3.subjects.PublishSubject; +import io.reactivex.rxjava3.subjects.Subject; public class Account { private static final String TAG = Account.class.getSimpleName(); diff --git a/ring-android/libringclient/src/main/java/net/jami/model/Conference.java b/ring-android/libringclient/src/main/java/net/jami/model/Conference.java index cab4c89649d924853598652dfe275a99852e76f1..efc9b29d9c20e0a8a53d069d2dccbad0750c536c 100644 --- a/ring-android/libringclient/src/main/java/net/jami/model/Conference.java +++ b/ring-android/libringclient/src/main/java/net/jami/model/Conference.java @@ -28,9 +28,9 @@ import java.util.List; import java.util.Map; import java.util.Set; -import io.reactivex.Observable; -import io.reactivex.subjects.BehaviorSubject; -import io.reactivex.subjects.Subject; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.subjects.BehaviorSubject; +import io.reactivex.rxjava3.subjects.Subject; public class Conference { diff --git a/ring-android/libringclient/src/main/java/net/jami/model/Contact.java b/ring-android/libringclient/src/main/java/net/jami/model/Contact.java index 996a40607574f8de2f47b46baec0ae692465025c..4740a0438478fc16bf66c89dfaf4b93dba6a8f6a 100644 --- a/ring-android/libringclient/src/main/java/net/jami/model/Contact.java +++ b/ring-android/libringclient/src/main/java/net/jami/model/Contact.java @@ -25,10 +25,10 @@ import net.jami.utils.StringUtils; import java.util.ArrayList; import java.util.Date; -import io.reactivex.Emitter; -import io.reactivex.Observable; -import io.reactivex.subjects.BehaviorSubject; -import io.reactivex.subjects.Subject; +import io.reactivex.rxjava3.core.Emitter; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.subjects.BehaviorSubject; +import io.reactivex.rxjava3.subjects.Subject; public class Contact { protected static final String TAG = Contact.class.getSimpleName(); diff --git a/ring-android/libringclient/src/main/java/net/jami/model/Conversation.java b/ring-android/libringclient/src/main/java/net/jami/model/Conversation.java index db047ac2843b462a3d5fb94303fd2535ecefa1f4..44ff694a28c9c9a0e74232fe8e1cac1e4e3ed02e 100644 --- a/ring-android/libringclient/src/main/java/net/jami/model/Conversation.java +++ b/ring-android/libringclient/src/main/java/net/jami/model/Conversation.java @@ -36,13 +36,13 @@ import java.util.NavigableMap; import java.util.Set; import java.util.TreeMap; -import io.reactivex.Completable; -import io.reactivex.Observable; -import io.reactivex.Single; -import io.reactivex.subjects.BehaviorSubject; -import io.reactivex.subjects.PublishSubject; -import io.reactivex.subjects.SingleSubject; -import io.reactivex.subjects.Subject; +import io.reactivex.rxjava3.core.Completable; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.subjects.BehaviorSubject; +import io.reactivex.rxjava3.subjects.PublishSubject; +import io.reactivex.rxjava3.subjects.SingleSubject; +import io.reactivex.rxjava3.subjects.Subject; public class Conversation extends ConversationHistory { private static final String TAG = Conversation.class.getSimpleName(); diff --git a/ring-android/libringclient/src/main/java/net/jami/mvp/AccountCreationModel.java b/ring-android/libringclient/src/main/java/net/jami/mvp/AccountCreationModel.java index 37f7343e00255c11f48155571d667d8f65190bdb..f5ec2f39937a96a2a849cfa005e278dcdef5e455 100644 --- a/ring-android/libringclient/src/main/java/net/jami/mvp/AccountCreationModel.java +++ b/ring-android/libringclient/src/main/java/net/jami/mvp/AccountCreationModel.java @@ -25,10 +25,10 @@ import java.io.File; import java.io.Serializable; import ezvcard.VCard; -import io.reactivex.Observable; -import io.reactivex.Single; -import io.reactivex.subjects.BehaviorSubject; -import io.reactivex.subjects.Subject; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.subjects.BehaviorSubject; +import io.reactivex.rxjava3.subjects.Subject; public abstract class AccountCreationModel implements Serializable { @@ -44,7 +44,7 @@ public abstract class AccountCreationModel implements Serializable { transient private net.jami.model.Account newAccount = null; transient private Object photo = null; - transient private Observable<net.jami.model.Account> account; + transient private Observable<Account> account; transient protected final Subject<AccountCreationModel> profile = BehaviorSubject.createDefault(this); public AccountCreationModel() { diff --git a/ring-android/libringclient/src/main/java/net/jami/mvp/RootPresenter.java b/ring-android/libringclient/src/main/java/net/jami/mvp/RootPresenter.java index 51885e717af5fe9b2ae990bcd7d0e4de4afed440..58b57c7b5dd561ad5910756ff493f18dfbd21b2c 100644 --- a/ring-android/libringclient/src/main/java/net/jami/mvp/RootPresenter.java +++ b/ring-android/libringclient/src/main/java/net/jami/mvp/RootPresenter.java @@ -21,7 +21,7 @@ package net.jami.mvp; import java.lang.ref.WeakReference; -import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.rxjava3.disposables.CompositeDisposable; public abstract class RootPresenter<T> { diff --git a/ring-android/libringclient/src/main/java/net/jami/navigation/HomeNavigationPresenter.java b/ring-android/libringclient/src/main/java/net/jami/navigation/HomeNavigationPresenter.java index 45ecfb11f3e6d89b4a69d6aabf4c977e3f7853d3..8640f713a41ad488afebf869417459cbda7f6a2b 100644 --- a/ring-android/libringclient/src/main/java/net/jami/navigation/HomeNavigationPresenter.java +++ b/ring-android/libringclient/src/main/java/net/jami/navigation/HomeNavigationPresenter.java @@ -38,9 +38,9 @@ import net.jami.utils.VCardUtils; import ezvcard.property.Photo; import ezvcard.property.RawProperty; import ezvcard.property.Uid; -import io.reactivex.Scheduler; -import io.reactivex.Single; -import io.reactivex.schedulers.Schedulers; +import io.reactivex.rxjava3.core.Scheduler; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.schedulers.Schedulers; public class HomeNavigationPresenter extends RootPresenter<HomeNavigationView> { diff --git a/ring-android/libringclient/src/main/java/net/jami/services/AccountService.java b/ring-android/libringclient/src/main/java/net/jami/services/AccountService.java index f732512be93a96a407c22c696624596c71c7481a..15bae636b9cf5f1ed75da16f36c0a8c848656b84 100644 --- a/ring-android/libringclient/src/main/java/net/jami/services/AccountService.java +++ b/ring-android/libringclient/src/main/java/net/jami/services/AccountService.java @@ -74,15 +74,15 @@ import javax.inject.Named; import ezvcard.Ezvcard; import ezvcard.VCard; -import io.reactivex.Completable; -import io.reactivex.Maybe; -import io.reactivex.Observable; -import io.reactivex.Single; -import io.reactivex.schedulers.Schedulers; -import io.reactivex.subjects.BehaviorSubject; -import io.reactivex.subjects.PublishSubject; -import io.reactivex.subjects.SingleSubject; -import io.reactivex.subjects.Subject; +import io.reactivex.rxjava3.core.Completable; +import io.reactivex.rxjava3.core.Maybe; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.schedulers.Schedulers; +import io.reactivex.rxjava3.subjects.BehaviorSubject; +import io.reactivex.rxjava3.subjects.PublishSubject; +import io.reactivex.rxjava3.subjects.SingleSubject; +import io.reactivex.rxjava3.subjects.Subject; /** * This service handles the accounts @@ -500,7 +500,7 @@ public class AccountService { }) .flatMap(account -> accountSubject .filter(acc -> acc.getAccountID().equals(account.getAccountID())) - .startWith(account)) + .startWithItem(account)) .subscribeOn(Schedulers.from(mExecutor)); } @@ -1895,7 +1895,7 @@ public class AccountService { public Observable<DataTransfer> observeDataTransfer(DataTransfer transfer) { return dataTransferSubject .filter(t -> t == transfer) - .startWith(transfer); + .startWithItem(transfer); } public void setProxyEnabled(boolean enabled) { diff --git a/ring-android/libringclient/src/main/java/net/jami/services/CallService.java b/ring-android/libringclient/src/main/java/net/jami/services/CallService.java index d5904ea3b7b002b051a7929b8db964bf10a796d3..92dd5ac045a8c04cf7b18aeef5658c8c9f87c955 100644 --- a/ring-android/libringclient/src/main/java/net/jami/services/CallService.java +++ b/ring-android/libringclient/src/main/java/net/jami/services/CallService.java @@ -45,11 +45,11 @@ import net.jami.model.Uri; import net.jami.utils.Log; import net.jami.utils.StringUtils; import ezvcard.VCard; -import io.reactivex.Completable; -import io.reactivex.Observable; -import io.reactivex.Single; -import io.reactivex.schedulers.Schedulers; -import io.reactivex.subjects.PublishSubject; +import io.reactivex.rxjava3.core.Completable; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.schedulers.Schedulers; +import io.reactivex.rxjava3.subjects.PublishSubject; public class CallService { @@ -93,12 +93,12 @@ public class CallService { return conferenceSubject .filter(c -> c == conf) - .startWith(conf) + .startWithItem(conf) .map(Conference::getParticipants) .switchMap(list -> Observable.fromIterable(list) .flatMap(call -> callSubject.filter(c -> c == call))) .map(call -> conf) - .startWith(conf); + .startWithItem(conf); } public Observable<Conference> getConfUpdates(final String confId) { @@ -213,7 +213,7 @@ public class CallService { ConferenceEntity conferenceEntity = new ConferenceEntity(conference); return conferenceSubject - .startWith(conference) + .startWithItem(conference) .filter(conf -> { Log.w(TAG, "getConfUpdates filter " + conf.getConfId() + " " + conf.getParticipants().size() + " (tracked " + conferenceEntity.conference.getConfId() + " " + conferenceEntity.conference.getParticipants().size() + ")"); if (conf == conferenceEntity.conference) { @@ -242,7 +242,7 @@ public class CallService { } private Observable<Call> getCallUpdates(final Call call) { return callSubject.filter(c -> c == call) - .startWith(call) + .startWithItem(call) .takeWhile(c -> c.getCallStatus() != Call.CallStatus.OVER); } /*public Observable<SipCall> getCallUpdates(final String callId) { @@ -457,12 +457,10 @@ public class CallService { } public Completable cancelMessage(final String accountId, final long messageID) { - return Completable - .fromAction(() -> { - Log.i(TAG, "CancelMessage() running... Account ID: " + accountId + " " + "Message ID " + " " + messageID); - JamiService.cancelMessage(accountId, messageID); - }) - .subscribeOn(Schedulers.from(mExecutor)); + return Completable.fromAction(() -> { + Log.i(TAG, "CancelMessage() running... Account ID: " + accountId + " " + "Message ID " + " " + messageID); + JamiService.cancelMessage(accountId, messageID); + }).subscribeOn(Schedulers.from(mExecutor)); } private Call getCurrentCallForId(String callId) { diff --git a/ring-android/libringclient/src/main/java/net/jami/services/ContactService.java b/ring-android/libringclient/src/main/java/net/jami/services/ContactService.java index 382453eee902c23523a227c106975b72d0904618..5762b1496eb1f65487bf3334ee379abfd8f7554b 100644 --- a/ring-android/libringclient/src/main/java/net/jami/services/ContactService.java +++ b/ring-android/libringclient/src/main/java/net/jami/services/ContactService.java @@ -36,9 +36,9 @@ import net.jami.model.Uri; import net.jami.utils.Log; import net.jami.utils.StringUtils; import ezvcard.VCard; -import io.reactivex.Completable; -import io.reactivex.Observable; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Completable; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Single; /** * This service handles the contacts diff --git a/ring-android/libringclient/src/main/java/net/jami/services/HardwareService.java b/ring-android/libringclient/src/main/java/net/jami/services/HardwareService.java index 037fb623536bb2f522b457cdbbb918440ed712f3..80249df326fb3047256813c383e569d4ece71c00 100644 --- a/ring-android/libringclient/src/main/java/net/jami/services/HardwareService.java +++ b/ring-android/libringclient/src/main/java/net/jami/services/HardwareService.java @@ -37,15 +37,16 @@ import net.jami.model.Call; import net.jami.utils.Log; import net.jami.utils.StringUtils; import net.jami.utils.Tuple; -import io.reactivex.Completable; -import io.reactivex.Emitter; -import io.reactivex.Observable; -import io.reactivex.ObservableOnSubscribe; -import io.reactivex.Scheduler; -import io.reactivex.schedulers.Schedulers; -import io.reactivex.subjects.BehaviorSubject; -import io.reactivex.subjects.PublishSubject; -import io.reactivex.subjects.Subject; + +import io.reactivex.rxjava3.core.Completable; +import io.reactivex.rxjava3.core.Emitter; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.ObservableOnSubscribe; +import io.reactivex.rxjava3.core.Scheduler; +import io.reactivex.rxjava3.schedulers.Schedulers; +import io.reactivex.rxjava3.subjects.BehaviorSubject; +import io.reactivex.rxjava3.subjects.PublishSubject; +import io.reactivex.rxjava3.subjects.Subject; public abstract class HardwareService { diff --git a/ring-android/libringclient/src/main/java/net/jami/services/HistoryService.java b/ring-android/libringclient/src/main/java/net/jami/services/HistoryService.java index 02ba0257a70848772792934351d0223b3048b0b0..5e460b2dfe4427e71958e07e79b234309209d3ab 100644 --- a/ring-android/libringclient/src/main/java/net/jami/services/HistoryService.java +++ b/ring-android/libringclient/src/main/java/net/jami/services/HistoryService.java @@ -35,10 +35,11 @@ import net.jami.model.TextMessage; import net.jami.model.Uri; import net.jami.utils.Log; import net.jami.utils.StringUtils; -import io.reactivex.Completable; -import io.reactivex.Scheduler; -import io.reactivex.Single; -import io.reactivex.schedulers.Schedulers; + +import io.reactivex.rxjava3.core.Completable; +import io.reactivex.rxjava3.core.Scheduler; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.schedulers.Schedulers; public abstract class HistoryService { private static final String TAG = HistoryService.class.getSimpleName(); diff --git a/ring-android/libringclient/src/main/java/net/jami/services/PreferencesService.java b/ring-android/libringclient/src/main/java/net/jami/services/PreferencesService.java index aaa6a3ce74ddcec9de77a8c8ee69eb68a583107f..f5b36bcb67dc5be4022ce3fcad0f676aa7a303fc 100644 --- a/ring-android/libringclient/src/main/java/net/jami/services/PreferencesService.java +++ b/ring-android/libringclient/src/main/java/net/jami/services/PreferencesService.java @@ -25,9 +25,10 @@ import java.util.Set; import javax.inject.Inject; import net.jami.model.Settings; -import io.reactivex.Observable; -import io.reactivex.subjects.BehaviorSubject; -import io.reactivex.subjects.Subject; + +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.subjects.BehaviorSubject; +import io.reactivex.rxjava3.subjects.Subject; public abstract class PreferencesService { diff --git a/ring-android/libringclient/src/main/java/net/jami/services/VCardService.java b/ring-android/libringclient/src/main/java/net/jami/services/VCardService.java index 25d77ba41324d0e1b8d2e44acccd53a954a3796e..899995d759b7eaf46cbcf33bf986ebe05f639578 100644 --- a/ring-android/libringclient/src/main/java/net/jami/services/VCardService.java +++ b/ring-android/libringclient/src/main/java/net/jami/services/VCardService.java @@ -24,8 +24,8 @@ import java.io.File; import net.jami.model.Account; import net.jami.utils.Tuple; import ezvcard.VCard; -import io.reactivex.Maybe; -import io.reactivex.Single; +import io.reactivex.rxjava3.core.Maybe; +import io.reactivex.rxjava3.core.Single; public abstract class VCardService { diff --git a/ring-android/libringclient/src/main/java/net/jami/settings/SettingsPresenter.java b/ring-android/libringclient/src/main/java/net/jami/settings/SettingsPresenter.java index 3fc7d85e709ee368394edabb2818e9fbe62b93c7..e710015479a7ab4c72ba9dec5a558440cb714cfb 100644 --- a/ring-android/libringclient/src/main/java/net/jami/settings/SettingsPresenter.java +++ b/ring-android/libringclient/src/main/java/net/jami/settings/SettingsPresenter.java @@ -29,7 +29,8 @@ import net.jami.mvp.GenericView; import net.jami.mvp.RootPresenter; import net.jami.services.PreferencesService; import net.jami.utils.Log; -import io.reactivex.Scheduler; + +import io.reactivex.rxjava3.core.Scheduler; public class SettingsPresenter extends RootPresenter<GenericView<Settings>> { diff --git a/ring-android/libringclient/src/main/java/net/jami/share/SharePresenter.java b/ring-android/libringclient/src/main/java/net/jami/share/SharePresenter.java index 61661b19f2d6afa5cc98f900713f9eddefbaf621..ec1ebb811f4cd8e21f89b029cd64853eebbae7c9 100644 --- a/ring-android/libringclient/src/main/java/net/jami/share/SharePresenter.java +++ b/ring-android/libringclient/src/main/java/net/jami/share/SharePresenter.java @@ -27,8 +27,8 @@ import javax.inject.Inject; import net.jami.mvp.GenericView; import net.jami.mvp.RootPresenter; -import io.reactivex.Scheduler; -import io.reactivex.schedulers.Schedulers; +import io.reactivex.rxjava3.core.Scheduler; +import io.reactivex.rxjava3.schedulers.Schedulers; public class SharePresenter extends RootPresenter<GenericView<ShareViewModel>> { private final net.jami.services.AccountService mAccountService; diff --git a/ring-android/libringclient/src/main/java/net/jami/smartlist/SmartListPresenter.java b/ring-android/libringclient/src/main/java/net/jami/smartlist/SmartListPresenter.java index da3d8043b5a23ef7bf9c8934e490f2de78352aa0..a51cd8facd53ecd3d57c853d71a209e8b4033770 100644 --- a/ring-android/libringclient/src/main/java/net/jami/smartlist/SmartListPresenter.java +++ b/ring-android/libringclient/src/main/java/net/jami/smartlist/SmartListPresenter.java @@ -35,14 +35,14 @@ import java.util.concurrent.TimeUnit; import javax.inject.Inject; import javax.inject.Named; -import io.reactivex.Observable; -import io.reactivex.Scheduler; -import io.reactivex.disposables.CompositeDisposable; -import io.reactivex.disposables.Disposable; -import io.reactivex.schedulers.Schedulers; -import io.reactivex.subjects.BehaviorSubject; -import io.reactivex.subjects.PublishSubject; -import io.reactivex.subjects.Subject; +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Scheduler; +import io.reactivex.rxjava3.disposables.CompositeDisposable; +import io.reactivex.rxjava3.disposables.Disposable; +import io.reactivex.rxjava3.schedulers.Schedulers; +import io.reactivex.rxjava3.subjects.BehaviorSubject; +import io.reactivex.rxjava3.subjects.PublishSubject; +import io.reactivex.rxjava3.subjects.Subject; public class SmartListPresenter extends RootPresenter<SmartListView> { diff --git a/ring-android/libringclient/src/main/java/net/jami/smartlist/SmartListView.java b/ring-android/libringclient/src/main/java/net/jami/smartlist/SmartListView.java index 8664c5fb6adf25da8405973801636b604bf4f3a2..a043e9a5d7845b489ad38ad47780921ed61d96f1 100644 --- a/ring-android/libringclient/src/main/java/net/jami/smartlist/SmartListView.java +++ b/ring-android/libringclient/src/main/java/net/jami/smartlist/SmartListView.java @@ -24,7 +24,7 @@ import java.util.List; import net.jami.model.Uri; import net.jami.mvp.BaseView; -import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.rxjava3.disposables.CompositeDisposable; public interface SmartListView extends BaseView { diff --git a/ring-android/libringclient/src/main/java/net/jami/smartlist/SmartListViewModel.java b/ring-android/libringclient/src/main/java/net/jami/smartlist/SmartListViewModel.java index 8ca3f792399b471f6cfb8d0e8c197a67e656bf3c..ff126999dc4a36fed0db4bc67075003f7efa6a95 100644 --- a/ring-android/libringclient/src/main/java/net/jami/smartlist/SmartListViewModel.java +++ b/ring-android/libringclient/src/main/java/net/jami/smartlist/SmartListViewModel.java @@ -28,8 +28,9 @@ import net.jami.model.Contact; import net.jami.model.Conversation; import net.jami.model.Interaction; import net.jami.model.Uri; -import io.reactivex.Observable; -import io.reactivex.Single; + +import io.reactivex.rxjava3.core.Observable; +import io.reactivex.rxjava3.core.Single; public class SmartListViewModel { diff --git a/ring-android/libringclient/src/main/java/net/jami/utils/VCardUtils.java b/ring-android/libringclient/src/main/java/net/jami/utils/VCardUtils.java index b49650b318c701f01ed4e6ca0720fbd2cd9bce43..bb9c56335faf1d7d0dc126fc9b8f196ddf971f05 100644 --- a/ring-android/libringclient/src/main/java/net/jami/utils/VCardUtils.java +++ b/ring-android/libringclient/src/main/java/net/jami/utils/VCardUtils.java @@ -34,8 +34,8 @@ import ezvcard.property.FormattedName; import ezvcard.property.Photo; import ezvcard.property.RawProperty; import ezvcard.property.Uid; -import io.reactivex.Single; -import io.reactivex.schedulers.Schedulers; +import io.reactivex.rxjava3.core.Single; +import io.reactivex.rxjava3.schedulers.Schedulers; public final class VCardUtils { public static final String TAG = VCardUtils.class.getSimpleName(); diff --git a/ring-android/libringclient/src/main/java/net/jami/wizard/SIPCreationPresenter.java b/ring-android/libringclient/src/main/java/net/jami/wizard/SIPCreationPresenter.java index 193d7e6e902ec5ee639d98276995be68fd20f999..bbf6da8046387ac267e7ed0680ed1e1cbe0246a1 100644 --- a/ring-android/libringclient/src/main/java/net/jami/wizard/SIPCreationPresenter.java +++ b/ring-android/libringclient/src/main/java/net/jami/wizard/SIPCreationPresenter.java @@ -40,8 +40,9 @@ import ezvcard.VCard; import ezvcard.property.FormattedName; import ezvcard.property.RawProperty; import ezvcard.property.Uid; -import io.reactivex.Scheduler; -import io.reactivex.observers.DisposableObserver; +import io.reactivex.rxjava3.annotations.NonNull; +import io.reactivex.rxjava3.core.Scheduler; +import io.reactivex.rxjava3.observers.DisposableObserver; public class SIPCreationPresenter extends RootPresenter<SIPCreationView> { @@ -78,7 +79,6 @@ public class SIPCreationPresenter extends RootPresenter<SIPCreationView> { * Attempts to register the account specified by the form. If there are form errors (invalid or missing fields, etc.), the * errors are presented and no actual creation attempt is made. * - * @param alias Alias account value * @param hostname hostname account value * @param username username account value * @param password password account value @@ -137,7 +137,7 @@ public class SIPCreationPresenter extends RootPresenter<SIPCreationView> { .observeOn(mUiScheduler) .subscribeWith(new DisposableObserver<Account>() { @Override - public void onNext(Account account) { + public void onNext(@NonNull Account account) { mAccount = account; switch (account.getRegistrationState()) { case AccountConfig.STATE_REGISTERED: @@ -162,7 +162,7 @@ public class SIPCreationPresenter extends RootPresenter<SIPCreationView> { } @Override - public void onError(Throwable e) { + public void onError(@NonNull Throwable e) { getView().showRegistrationError(); dispose(); }