78 lines
2.4 KiB
Java
78 lines
2.4 KiB
Java
package org.mercury_im.messenger.android.ui.contacts.detail;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import androidx.annotation.Nullable;
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
import androidx.lifecycle.ViewModelProvider;
|
|
|
|
import org.mercury_im.messenger.android.MercuryImApplication;
|
|
import org.mercury_im.messenger.R;
|
|
import org.mercury_im.messenger.android.di.module.AndroidSchedulersModule;
|
|
import org.mercury_im.messenger.android.ui.base.MercuryActivity;
|
|
import org.mercury_im.messenger.android.util.ArgumentUtils;
|
|
import org.mercury_im.messenger.core.data.repository.PeerRepository;
|
|
|
|
import java.util.UUID;
|
|
|
|
import javax.inject.Inject;
|
|
|
|
import butterknife.ButterKnife;
|
|
import io.reactivex.Completable;
|
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
|
import io.reactivex.disposables.Disposable;
|
|
import io.reactivex.schedulers.Schedulers;
|
|
import lombok.Value;
|
|
|
|
public class ContactDetailActivity extends AppCompatActivity implements MercuryActivity {
|
|
public static final String EXTRA_PEER_ID = "PEER_ID";
|
|
|
|
private AndroidContactDetailViewModel androidContactDetailViewModel;
|
|
private UUID peerId;
|
|
|
|
Disposable disposable;
|
|
|
|
@Override
|
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
MercuryImApplication.getApplication().getAppComponent().inject(this);
|
|
|
|
Arguments arguments = getArguments(savedInstanceState);
|
|
peerId = arguments.getPeerId();
|
|
|
|
androidContactDetailViewModel = new ViewModelProvider(this).get(AndroidContactDetailViewModel.class);
|
|
bindUiComponents();
|
|
|
|
disposable = androidContactDetailViewModel.init(peerId)
|
|
.subscribeOn(Schedulers.io())
|
|
.observeOn(AndroidSchedulers.mainThread())
|
|
.subscribe();
|
|
}
|
|
|
|
private void bindUiComponents() {
|
|
setContentView(R.layout.layout_top_toolbar);
|
|
ButterKnife.bind(this);
|
|
|
|
getSupportFragmentManager().beginTransaction()
|
|
.replace(R.id.fragment, new ContactDetailFragment(), "contact_details")
|
|
.commit();
|
|
}
|
|
|
|
private Arguments getArguments(Bundle bundle) {
|
|
bundle = requiredExtras(bundle, getIntent());
|
|
UUID peerId = ArgumentUtils.requireUUID(bundle, EXTRA_PEER_ID);
|
|
return new Arguments(peerId);
|
|
}
|
|
|
|
@Value
|
|
private class Arguments {
|
|
UUID peerId;
|
|
}
|
|
|
|
@Override
|
|
protected void onDestroy() {
|
|
super.onDestroy();
|
|
disposable.dispose();
|
|
}
|
|
}
|