Refactor ChatActivity, use Arguments helper classes and wrap AccountDetailsFragment in own Activity
This commit is contained in:
parent
4f04a29798
commit
2839d8177d
|
@ -33,7 +33,8 @@
|
|||
<activity
|
||||
android:name=".android.ui.settings.SettingsActivity"
|
||||
android:label="@string/title_activity_settings" />
|
||||
<activity android:name=".android.ui.roster.contacts.detail.ContactDetailActivity" />
|
||||
<activity android:name=".android.ui.contacts.detail.ContactDetailActivity" />
|
||||
<activity android:name=".android.ui.account.detail.AccountDetailsActivity" />
|
||||
|
||||
<service android:name=".android.service.MercuryForegroundService" />
|
||||
</application>
|
||||
|
|
|
@ -69,8 +69,7 @@ public class Notifications {
|
|||
|
||||
Intent tapAction = new Intent(context, ChatActivity.class);
|
||||
tapAction.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||
tapAction.putExtra(ChatActivity.EXTRA_JID, chat.getPeer().getAddress());
|
||||
tapAction.putExtra(ChatActivity.EXTRA_ACCOUNT, chat.getPeer().getAccount().getId());
|
||||
tapAction.putExtra(ChatActivity.EXTRA_CHAT_ID, chat.getId().toString());
|
||||
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, tapAction, 0);
|
||||
|
||||
NotificationCompat.Builder builder = new NotificationCompat.Builder(context,
|
||||
|
|
|
@ -4,7 +4,7 @@ import org.mercury_im.messenger.android.MercuryImApplication;
|
|||
import org.mercury_im.messenger.android.di.module.AndroidDatabaseModule;
|
||||
import org.mercury_im.messenger.android.di.module.AndroidSchedulersModule;
|
||||
import org.mercury_im.messenger.android.ui.account.detail.AndroidAccountDetailsViewModel;
|
||||
import org.mercury_im.messenger.android.ui.roster.contacts.AndroidContactListViewModel;
|
||||
import org.mercury_im.messenger.android.ui.contacts.AndroidContactListViewModel;
|
||||
import org.mercury_im.messenger.core.di.module.OpenPgpModule;
|
||||
import org.mercury_im.messenger.core.di.module.RxMercuryMessageStoreFactoryModule;
|
||||
import org.mercury_im.messenger.core.di.module.RxMercuryRosterStoreFactoryModule;
|
||||
|
@ -26,8 +26,8 @@ import org.mercury_im.messenger.android.ui.chat.ChatInputFragment;
|
|||
import org.mercury_im.messenger.android.ui.chat.ChatInputViewModel;
|
||||
import org.mercury_im.messenger.android.ui.chat.AndroidChatViewModel;
|
||||
import org.mercury_im.messenger.android.ui.chatlist.AndroidChatListViewModel;
|
||||
import org.mercury_im.messenger.android.ui.roster.contacts.detail.ContactDetailActivity;
|
||||
import org.mercury_im.messenger.android.ui.roster.contacts.detail.ContactDetailViewModel;
|
||||
import org.mercury_im.messenger.android.ui.contacts.detail.ContactDetailActivity;
|
||||
import org.mercury_im.messenger.android.ui.contacts.detail.ContactDetailViewModel;
|
||||
import org.mercury_im.messenger.core.viewmodel.account.LoginViewModel;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
|
|
@ -16,14 +16,14 @@ import com.google.android.material.navigation.NavigationView;
|
|||
|
||||
import org.mercury_im.messenger.android.MercuryImApplication;
|
||||
import org.mercury_im.messenger.R;
|
||||
import org.mercury_im.messenger.android.ui.account.detail.AccountDetailsFragment;
|
||||
import org.mercury_im.messenger.android.ui.account.detail.AccountDetailsActivity;
|
||||
import org.mercury_im.messenger.android.ui.account.DeleteAccountDialogFragment;
|
||||
import org.mercury_im.messenger.android.ui.account.OnAccountListItemClickListener;
|
||||
import org.mercury_im.messenger.android.ui.account.list.AccountListFragment;
|
||||
import org.mercury_im.messenger.core.data.repository.AccountRepository;
|
||||
import org.mercury_im.messenger.entity.Account;
|
||||
import org.mercury_im.messenger.android.ui.chatlist.ChatListFragment;
|
||||
import org.mercury_im.messenger.android.ui.roster.RosterFragment;
|
||||
import org.mercury_im.messenger.android.ui.contacts.RosterFragment;
|
||||
import org.mercury_im.messenger.android.ui.settings.SettingsActivity;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
@ -112,8 +112,9 @@ public class MainActivity extends AppCompatActivity
|
|||
|
||||
@Override
|
||||
public void onAccountListItemClick(Account item) {
|
||||
getSupportFragmentManager().beginTransaction()
|
||||
.replace(R.id.fragment, new AccountDetailsFragment(item.getId())).commit();
|
||||
Intent intent = new Intent(this, AccountDetailsActivity.class);
|
||||
intent.putExtra(AccountDetailsActivity.EXTRA_ACCOUNT_ID, item.getId().toString());
|
||||
startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
package org.mercury_im.messenger.android.ui;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
|
||||
public interface MercuryActivity {
|
||||
|
||||
default Bundle requiredExtras(Bundle savedInstanceState, Intent intent) {
|
||||
if (savedInstanceState == null) {
|
||||
savedInstanceState = intent.getExtras();
|
||||
}
|
||||
if (savedInstanceState == null) {
|
||||
throw new IllegalArgumentException("Missing bundle!");
|
||||
}
|
||||
return savedInstanceState;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
package org.mercury_im.messenger.android.ui.account.detail;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import org.mercury_im.messenger.R;
|
||||
import org.mercury_im.messenger.android.ui.MercuryActivity;
|
||||
import org.mercury_im.messenger.android.util.ArgumentUtils;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import butterknife.ButterKnife;
|
||||
import lombok.Value;
|
||||
|
||||
public class AccountDetailsActivity extends AppCompatActivity implements MercuryActivity {
|
||||
|
||||
public static final String EXTRA_ACCOUNT_ID = "ACCOUNT_ID";
|
||||
|
||||
private UUID accountId;
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
//MercuryImApplication.getApplication().getAppComponent().inject(this);
|
||||
|
||||
Arguments arguments = getArguments(savedInstanceState);
|
||||
accountId = arguments.getAccountId();
|
||||
|
||||
bindUiComponents();
|
||||
}
|
||||
|
||||
private void bindUiComponents() {
|
||||
setContentView(R.layout.activity_fragment_container);
|
||||
ButterKnife.bind(this);
|
||||
|
||||
getSupportFragmentManager().beginTransaction()
|
||||
.replace(R.id.fragment, new AccountDetailsFragment(accountId), "account_details")
|
||||
.commit();
|
||||
}
|
||||
|
||||
private Arguments getArguments(Bundle bundle) {
|
||||
bundle = requiredExtras(bundle, getIntent());
|
||||
UUID accountId = ArgumentUtils.requireUUID(bundle, EXTRA_ACCOUNT_ID);
|
||||
return new Arguments(accountId);
|
||||
}
|
||||
|
||||
@Value
|
||||
private class Arguments {
|
||||
UUID accountId;
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package org.mercury_im.messenger.android.ui.roster.bookmarks;
|
||||
package org.mercury_im.messenger.android.ui.bookmarks;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
|
@ -98,6 +98,10 @@ public class AndroidChatViewModel extends ViewModel implements MercuryAndroidVie
|
|||
getCommonViewModel().sendMessage(body);
|
||||
}
|
||||
|
||||
public String getContactId() {
|
||||
return getContact().getValue().getId().toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ChatViewModel getCommonViewModel() {
|
||||
return commonViewModel;
|
||||
|
|
|
@ -2,10 +2,8 @@ package org.mercury_im.messenger.android.ui.chat;
|
|||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
@ -16,25 +14,27 @@ import androidx.lifecycle.ViewModelProvider;
|
|||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import org.jxmpp.jid.EntityBareJid;
|
||||
import org.jxmpp.jid.impl.JidCreate;
|
||||
import org.mercury_im.messenger.android.MercuryImApplication;
|
||||
import org.mercury_im.messenger.R;
|
||||
import org.mercury_im.messenger.android.ui.MercuryActivity;
|
||||
import org.mercury_im.messenger.android.util.ArgumentUtils;
|
||||
import org.mercury_im.messenger.entity.contact.Peer;
|
||||
import org.mercury_im.messenger.android.ui.roster.contacts.detail.ContactDetailActivity;
|
||||
import org.mercury_im.messenger.android.ui.contacts.detail.ContactDetailActivity;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import io.reactivex.disposables.CompositeDisposable;
|
||||
import lombok.Value;
|
||||
|
||||
public class ChatActivity extends AppCompatActivity
|
||||
implements ChatInputFragment.OnChatInputActionListener, SearchView.OnQueryTextListener {
|
||||
implements MercuryActivity, ChatInputFragment.OnChatInputActionListener, SearchView.OnQueryTextListener {
|
||||
|
||||
public static final String EXTRA_CHAT_ID = "CHAT_ID";
|
||||
public static final String EXTRA_JID = "JID";
|
||||
public static final String EXTRA_ACCOUNT = "ACCOUNT";
|
||||
|
||||
private final MessagesRecyclerViewAdapter recyclerViewAdapter = new MessagesRecyclerViewAdapter();
|
||||
private final CompositeDisposable disposable = new CompositeDisposable();
|
||||
|
||||
@BindView(R.id.toolbar)
|
||||
Toolbar toolbar;
|
||||
|
@ -42,53 +42,39 @@ public class ChatActivity extends AppCompatActivity
|
|||
@BindView(R.id.recyclerView)
|
||||
RecyclerView recyclerView;
|
||||
|
||||
private final MessagesRecyclerViewAdapter recyclerViewAdapter = new MessagesRecyclerViewAdapter();
|
||||
|
||||
private AndroidChatViewModel androidChatViewModel;
|
||||
|
||||
private final CompositeDisposable disposable = new CompositeDisposable();
|
||||
|
||||
private UUID chatId;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
MercuryImApplication.getApplication().getAppComponent().inject(this);
|
||||
|
||||
Arguments arguments = getArguments(savedInstanceState);
|
||||
chatId = arguments.getChatId();
|
||||
|
||||
androidChatViewModel = new ViewModelProvider(this).get(AndroidChatViewModel.class);
|
||||
androidChatViewModel.init(chatId);
|
||||
|
||||
bindUiComponents();
|
||||
observeViewModel(androidChatViewModel);
|
||||
}
|
||||
|
||||
private void bindUiComponents() {
|
||||
setContentView(R.layout.activity_chat);
|
||||
ButterKnife.bind(this);
|
||||
|
||||
setSupportActionBar(toolbar);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
toolbar.setOnClickListener(v -> {
|
||||
Intent intent = new Intent(ChatActivity.this, ContactDetailActivity.class);
|
||||
intent.putExtra(ContactDetailActivity.EXTRA_PEER_ID, androidChatViewModel.getContactId());
|
||||
ChatActivity.this.startActivity(intent);
|
||||
});
|
||||
|
||||
recyclerView.setAdapter(recyclerViewAdapter);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(this));
|
||||
|
||||
MercuryImApplication.getApplication().getAppComponent().inject(this);
|
||||
|
||||
if (savedInstanceState == null) {
|
||||
savedInstanceState = getIntent().getExtras();
|
||||
if (savedInstanceState == null) return;
|
||||
}
|
||||
|
||||
String chatIdString = savedInstanceState.getString(EXTRA_CHAT_ID);
|
||||
if (chatIdString == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
chatId = UUID.fromString(chatIdString);
|
||||
androidChatViewModel = new ViewModelProvider(this).get(AndroidChatViewModel.class);
|
||||
androidChatViewModel.init(chatId);
|
||||
// Listen for updates to contact information and messages
|
||||
observeViewModel(androidChatViewModel);
|
||||
|
||||
toolbar.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Intent intent = new Intent(ChatActivity.this, ContactDetailActivity.class);
|
||||
intent.putExtra(ContactDetailActivity.EXTRA_PEER_ID, androidChatViewModel.getContact().getValue().getId().toString());
|
||||
|
||||
ChatActivity.this.startActivity(intent);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void observeViewModel(AndroidChatViewModel viewModel) {
|
||||
|
@ -204,4 +190,15 @@ public class ChatActivity extends AppCompatActivity
|
|||
onBackPressed();
|
||||
return true;
|
||||
}
|
||||
|
||||
private Arguments getArguments(Bundle savedInstanceState) {
|
||||
savedInstanceState = requiredExtras(savedInstanceState, getIntent());
|
||||
UUID chatId = ArgumentUtils.requireUUID(savedInstanceState, EXTRA_CHAT_ID);
|
||||
return new Arguments(chatId);
|
||||
}
|
||||
|
||||
@Value
|
||||
private class Arguments {
|
||||
UUID chatId;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package org.mercury_im.messenger.android.ui.roster.contacts;
|
||||
package org.mercury_im.messenger.android.ui.contacts;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
|
@ -1,4 +1,4 @@
|
|||
package org.mercury_im.messenger.android.ui.roster.contacts;
|
||||
package org.mercury_im.messenger.android.ui.contacts;
|
||||
|
||||
import android.app.Application;
|
||||
|
|
@ -1,6 +1,5 @@
|
|||
package org.mercury_im.messenger.android.ui.roster.contacts;
|
||||
package org.mercury_im.messenger.android.ui.contacts;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
|
@ -1,4 +1,4 @@
|
|||
package org.mercury_im.messenger.android.ui.roster.contacts;
|
||||
package org.mercury_im.messenger.android.ui.contacts;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
@ -14,7 +14,7 @@ import androidx.recyclerview.widget.RecyclerView;
|
|||
import org.mercury_im.messenger.R;
|
||||
import org.mercury_im.messenger.entity.contact.Peer;
|
||||
import org.mercury_im.messenger.android.ui.avatar.AvatarDrawable;
|
||||
import org.mercury_im.messenger.android.ui.roster.contacts.detail.ContactDetailActivity;
|
||||
import org.mercury_im.messenger.android.ui.contacts.detail.ContactDetailActivity;
|
||||
import org.mercury_im.messenger.android.ui.util.AbstractRecyclerViewAdapter;
|
||||
|
||||
import java.util.Objects;
|
|
@ -1,4 +1,4 @@
|
|||
package org.mercury_im.messenger.android.ui.roster;
|
||||
package org.mercury_im.messenger.android.ui.contacts;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
|
@ -16,8 +16,8 @@ import androidx.viewpager.widget.ViewPager;
|
|||
import com.google.android.material.tabs.TabLayout;
|
||||
|
||||
import org.mercury_im.messenger.R;
|
||||
import org.mercury_im.messenger.android.ui.roster.bookmarks.BookmarkListFragment;
|
||||
import org.mercury_im.messenger.android.ui.roster.contacts.ContactListFragment;
|
||||
import org.mercury_im.messenger.android.ui.bookmarks.BookmarkListFragment;
|
||||
import org.mercury_im.messenger.android.ui.contacts.ContactListFragment;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
|
@ -0,0 +1,60 @@
|
|||
package org.mercury_im.messenger.android.ui.contacts.detail;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
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.ui.MercuryActivity;
|
||||
import org.mercury_im.messenger.android.util.ArgumentUtils;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import lombok.Value;
|
||||
|
||||
public class ContactDetailActivity extends AppCompatActivity implements MercuryActivity {
|
||||
public static final String EXTRA_PEER_ID = "PEER_ID";
|
||||
|
||||
private ContactDetailViewModel androidContactDetailViewModel;
|
||||
private UUID peerId;
|
||||
|
||||
@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(ContactDetailViewModel.class);
|
||||
androidContactDetailViewModel.init(peerId);
|
||||
|
||||
bindUiComponents();
|
||||
}
|
||||
|
||||
private void bindUiComponents() {
|
||||
setContentView(R.layout.activity_fragment_container);
|
||||
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;
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package org.mercury_im.messenger.android.ui.roster.contacts.detail;
|
||||
package org.mercury_im.messenger.android.ui.contacts.detail;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
|
@ -31,7 +31,6 @@ import org.mercury_im.messenger.R;
|
|||
import org.mercury_im.messenger.android.ui.chat.ChatActivity;
|
||||
import org.mercury_im.messenger.android.util.ColorUtil;
|
||||
import org.mercury_im.messenger.core.viewmodel.openpgp.FingerprintViewItem;
|
||||
import org.mercury_im.messenger.entity.chat.DirectChat;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
|
@ -1,7 +1,6 @@
|
|||
package org.mercury_im.messenger.android.ui.roster.contacts.detail;
|
||||
package org.mercury_im.messenger.android.ui.contacts.detail;
|
||||
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.lifecycle.LiveData;
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
|
@ -16,7 +15,6 @@ import org.jivesoftware.smack.roster.RosterEntry;
|
|||
import org.jivesoftware.smack.roster.RosterGroup;
|
||||
import org.jivesoftware.smackx.ox.store.definition.OpenPgpTrustStore;
|
||||
import org.jxmpp.jid.BareJid;
|
||||
import org.jxmpp.jid.EntityBareJid;
|
||||
import org.jxmpp.jid.Jid;
|
||||
import org.jxmpp.jid.impl.JidCreate;
|
||||
import org.mercury_im.messenger.android.MercuryImApplication;
|
||||
|
@ -28,7 +26,6 @@ import org.mercury_im.messenger.core.data.repository.PeerRepository;
|
|||
import org.mercury_im.messenger.core.util.Optional;
|
||||
import org.mercury_im.messenger.core.viewmodel.openpgp.FingerprintViewItem;
|
||||
import org.mercury_im.messenger.entity.chat.Chat;
|
||||
import org.mercury_im.messenger.entity.contact.Peer;
|
||||
import org.mercury_im.messenger.android.ui.avatar.AvatarDrawable;
|
||||
import org.mercury_im.messenger.core.util.CombinedPresenceListener;
|
||||
import org.pgpainless.key.OpenPgpV4Fingerprint;
|
||||
|
@ -81,7 +78,7 @@ public class ContactDetailViewModel extends ViewModel {
|
|||
MercuryImApplication.getApplication().getAppComponent().inject(this);
|
||||
}
|
||||
|
||||
public void bind(UUID peerId) {
|
||||
public void init(UUID peerId) {
|
||||
this.peerId = peerId;
|
||||
|
||||
disposable.add(peerRepository.getPeer(peerId)
|
|
@ -1,47 +0,0 @@
|
|||
package org.mercury_im.messenger.android.ui.roster.contacts.detail;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
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 java.util.UUID;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
|
||||
public class ContactDetailActivity extends AppCompatActivity {
|
||||
public static final String EXTRA_JID = "JID";
|
||||
public static final String EXTRA_ACCOUNT = "ACCOUNT";
|
||||
public static final String EXTRA_PEER_ID = "PEER_ID";
|
||||
|
||||
@BindView(R.id.fragment)
|
||||
FrameLayout container;
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_fragment_container);
|
||||
ButterKnife.bind(this);
|
||||
|
||||
MercuryImApplication.getApplication().getAppComponent().inject(this);
|
||||
|
||||
if (savedInstanceState == null) {
|
||||
savedInstanceState = getIntent().getExtras();
|
||||
if (savedInstanceState == null) return;
|
||||
}
|
||||
|
||||
String peerIdString = savedInstanceState.getString(EXTRA_PEER_ID);
|
||||
UUID peerId = UUID.fromString(peerIdString);
|
||||
|
||||
ContactDetailViewModel viewModel = new ViewModelProvider(this).get(ContactDetailViewModel.class);
|
||||
viewModel.bind(peerId);
|
||||
|
||||
getSupportFragmentManager().beginTransaction().replace(R.id.fragment, new ContactDetailFragment(), "contact_details").commit();
|
||||
}
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
/**
|
||||
* Some Javadoc information about the package.
|
||||
*/
|
||||
package org.mercury_im.messenger.android.ui.roster;
|
|
@ -0,0 +1,16 @@
|
|||
package org.mercury_im.messenger.android.util;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class ArgumentUtils {
|
||||
|
||||
public static UUID requireUUID(Bundle bundle, String key) {
|
||||
String uuidString = bundle.getString(key);
|
||||
if (uuidString == null) {
|
||||
throw new IllegalArgumentException("Missing required UUID '" + key + "' (as String)");
|
||||
}
|
||||
return UUID.fromString(uuidString);
|
||||
}
|
||||
}
|
|
@ -12,7 +12,7 @@
|
|||
android:layout_height="match_parent"
|
||||
android:scrollbars="vertical"
|
||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||
tools:context=".android.ui.roster.contacts.ContactListFragment"
|
||||
tools:context=".android.ui.contacts.ContactListFragment"
|
||||
tools:listitem="@layout/list_item_chat" />
|
||||
|
||||
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
android:scrollbars="vertical"
|
||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||
tools:listitem="@layout/list_item_contact"
|
||||
tools:context=".android.ui.roster.contacts.ContactListFragment"/>
|
||||
tools:context=".android.ui.contacts.ContactListFragment"/>
|
||||
|
||||
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
|
||||
style="@style/Widget.MaterialComponents.ExtendedFloatingActionButton.Icon"
|
||||
|
|
Loading…
Reference in New Issue