diff --git a/app/src/main/java/i2p/bote/android/addressbook/AddressBookFragment.java b/app/src/main/java/i2p/bote/android/addressbook/AddressBookFragment.java
index 1fb712c..be3ac83 100644
--- a/app/src/main/java/i2p/bote/android/addressbook/AddressBookFragment.java
+++ b/app/src/main/java/i2p/bote/android/addressbook/AddressBookFragment.java
@@ -6,10 +6,13 @@ import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
+import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
-import android.view.MenuItem;
import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.ImageButton;
import android.widget.ListView;
import java.util.SortedSet;
@@ -18,7 +21,6 @@ import i2p.bote.I2PBote;
import i2p.bote.android.R;
import i2p.bote.android.util.AuthenticatedListFragment;
import i2p.bote.android.util.BetterAsyncTaskLoader;
-import i2p.bote.android.util.BoteHelper;
import i2p.bote.fileencryption.PasswordException;
import i2p.bote.packet.dht.Contact;
@@ -27,7 +29,7 @@ public class AddressBookFragment extends AuthenticatedListFragment implements
OnContactSelectedListener mCallback;
private ContactAdapter mAdapter;
- private MenuItem mNewContact;
+ private View mPromotedActions;
// Container Activity must implement this interface
public interface OnContactSelectedListener {
@@ -51,9 +53,32 @@ public class AddressBookFragment extends AuthenticatedListFragment implements
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ // Only so we can show/hide the FAM
setHasOptionsMenu(true);
}
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ // Create the list fragment's content view by calling the super method
+ final View listFragmentView = super.onCreateView(inflater, container, savedInstanceState);
+
+ View v = inflater.inflate(R.layout.fragment_list_contacts, container, false);
+ FrameLayout listContainer = (FrameLayout) v.findViewById(R.id.list_container);
+ listContainer.addView(listFragmentView);
+
+ mPromotedActions = v.findViewById(R.id.promoted_actions);
+
+ ImageButton b = (ImageButton) v.findViewById(R.id.action_new_contact);
+ b.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ startNewContact();
+ }
+ });
+
+ return v;
+ }
+
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
@@ -81,39 +106,13 @@ public class AddressBookFragment extends AuthenticatedListFragment implements
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
- inflater.inflate(R.menu.address_book_list, menu);
- mNewContact = menu.findItem(R.id.action_new_contact);
}
@Override
public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
- mNewContact.setVisible(!I2PBote.getInstance().isPasswordRequired());
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case R.id.action_new_contact:
- if (I2PBote.getInstance().isPasswordRequired()) {
- BoteHelper.requestPassword(getActivity(), new BoteHelper.RequestPasswordListener() {
- @Override
- public void onPasswordVerified() {
- startNewContact();
- }
-
- @Override
- public void onPasswordCanceled() {
- }
- });
- } else {
- startNewContact();
- }
- return true;
-
- default:
- return super.onOptionsItemSelected(item);
- }
+ boolean passwordRequired = I2PBote.getInstance().isPasswordRequired();
+ mPromotedActions.setVisibility(passwordRequired ? View.GONE : View.VISIBLE);
}
private void startNewContact() {
diff --git a/app/src/main/res/layout/fragment_list_contacts.xml b/app/src/main/res/layout/fragment_list_contacts.xml
new file mode 100644
index 0000000..745d2c6
--- /dev/null
+++ b/app/src/main/res/layout/fragment_list_contacts.xml
@@ -0,0 +1,34 @@
+
+