diff --git a/app/build.gradle b/app/build.gradle index 080846d..555622d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,6 +29,7 @@ dependencies { compile fileTree(dir: 'libs', include: '*.jar') compile 'com.android.support:support-v4:21.0.0' compile 'com.android.support:appcompat-v7:21.0.0' + compile 'com.getbase:floatingactionbutton:1.0.0' compile ('com.mcxiaoke.viewpagerindicator:library:2.4.1') { exclude group: 'com.android.support', module: 'support-v4' } diff --git a/app/src/main/java/i2p/bote/android/EmailListFragment.java b/app/src/main/java/i2p/bote/android/EmailListFragment.java index 2696000..97d05fc 100644 --- a/app/src/main/java/i2p/bote/android/EmailListFragment.java +++ b/app/src/main/java/i2p/bote/android/EmailListFragment.java @@ -21,6 +21,7 @@ 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 android.widget.TextView; @@ -63,7 +64,7 @@ public class EmailListFragment extends AuthenticatedListFragment implements private EmailListAdapter mAdapter; private EmailFolder mFolder; - private MenuItem mNewEmail; + private ImageButton mNewEmail; private MenuItem mCheckEmail; // The Controller which provides CHOICE_MODE_MULTIPLE_MODAL-like functionality @@ -104,13 +105,24 @@ public class EmailListFragment extends AuthenticatedListFragment implements String folderName = getArguments().getString(FOLDER_NAME); mFolder = BoteHelper.getMailFolder(folderName); + boolean isInbox = BoteHelper.isInbox(mFolder); - if (BoteHelper.isInbox(mFolder)) { - // Inflate the MultiSwipeRefreshLayout - mSwipeRefreshLayout = (MultiSwipeRefreshLayout) inflater.inflate( - R.layout.fragment_list_emails, container, false); - FrameLayout listContainer = (FrameLayout) mSwipeRefreshLayout.findViewById(R.id.list_container); - listContainer.addView(listFragmentView); + View v = inflater.inflate( + isInbox ? R.layout.fragment_list_emails_with_refresh : R.layout.fragment_list_emails, + container, false); + FrameLayout listContainer = (FrameLayout) v.findViewById(R.id.list_container); + listContainer.addView(listFragmentView); + + mNewEmail = (ImageButton) v.findViewById(R.id.promoted_action); + mNewEmail.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + startNewEmail(); + } + }); + + if (isInbox) { + mSwipeRefreshLayout = (MultiSwipeRefreshLayout) v; // Set up the empty view View emptyView = mSwipeRefreshLayout.findViewById(android.R.id.empty); @@ -124,11 +136,9 @@ public class EmailListFragment extends AuthenticatedListFragment implements mSwipeRefreshLayout.setSwipeableChildren(android.R.id.list, android.R.id.empty); mSwipeRefreshLayout.setOnRefreshListener(this); mSwipeRefreshLayout.setRefreshing(I2PBote.getInstance().isCheckingForMail()); + } - // Now return the MultiSwipeRefreshLayout as this fragment's content view - return mSwipeRefreshLayout; - } else - return listFragmentView; + return v; } @Override @@ -218,7 +228,6 @@ public class EmailListFragment extends AuthenticatedListFragment implements public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); inflater.inflate(R.menu.email_list, menu); - mNewEmail = menu.findItem(R.id.action_new_email); mCheckEmail = menu.findItem(R.id.action_check_email); } @@ -226,7 +235,7 @@ public class EmailListFragment extends AuthenticatedListFragment implements public void onPrepareOptionsMenu(Menu menu) { super.onPrepareOptionsMenu(menu); boolean passwordRequired = I2PBote.getInstance().isPasswordRequired(); - mNewEmail.setVisible(!passwordRequired); + mNewEmail.setVisibility(passwordRequired ? View.GONE : View.VISIBLE); mCheckEmail.setVisible(mSwipeRefreshLayout != null && !passwordRequired); if (mSwipeRefreshLayout != null) mSwipeRefreshLayout.setEnabled(!passwordRequired); @@ -235,10 +244,6 @@ public class EmailListFragment extends AuthenticatedListFragment implements @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { - case R.id.action_new_email: - startNewEmail(); - return true; - case R.id.action_check_email: if (!mSwipeRefreshLayout.isRefreshing()) { mSwipeRefreshLayout.setRefreshing(true); diff --git a/app/src/main/res/layout/fragment_list_emails.xml b/app/src/main/res/layout/fragment_list_emails.xml index 6275ea1..504cd59 100644 --- a/app/src/main/res/layout/fragment_list_emails.xml +++ b/app/src/main/res/layout/fragment_list_emails.xml @@ -1,30 +1,25 @@ - + android:layout_height="match_parent" /> - - - - - - - - - + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_list_emails_with_refresh.xml b/app/src/main/res/layout/fragment_list_emails_with_refresh.xml new file mode 100644 index 0000000..f87db27 --- /dev/null +++ b/app/src/main/res/layout/fragment_list_emails_with_refresh.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/menu/email_list.xml b/app/src/main/res/menu/email_list.xml index b24eadc..ab3be30 100644 --- a/app/src/main/res/menu/email_list.xml +++ b/app/src/main/res/menu/email_list.xml @@ -2,12 +2,6 @@ - - #3f51b5 #303f9f #ffab40 + #ff9100 #9033B5E5