Added some actions

This commit is contained in:
2015-09-06 17:45:21 +02:00
parent 496fffe6ee
commit a17685fd10
32 changed files with 297 additions and 36 deletions

View File

@@ -1,16 +1,18 @@
package ch.dissem.apps.abit;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.*;
import android.widget.ImageView;
import android.widget.TextView;
import ch.dissem.apps.abit.service.Singleton;
import ch.dissem.apps.abit.utils.Drawables;
import ch.dissem.bitmessage.BitmessageContext;
import ch.dissem.bitmessage.entity.BitmessageAddress;
import ch.dissem.bitmessage.entity.Plaintext;
import ch.dissem.bitmessage.entity.valueobject.Label;
import com.mikepenz.google_material_typeface_library.GoogleMaterial;
import java.util.Iterator;
@@ -29,10 +31,11 @@ public class MessageDetailFragment extends Fragment {
public static final String ARG_ITEM = "item";
/**
* The dummy content this fragment is presenting.
* The content this fragment is presenting.
*/
private Plaintext item;
/**
* Mandatory empty constructor for the fragment manager to instantiate the
* fragment (e.g. upon screen orientation changes).
@@ -50,6 +53,7 @@ public class MessageDetailFragment extends Fragment {
// to load content from a content provider.
item = (Plaintext) getArguments().getSerializable(ARG_ITEM);
}
setHasOptionsMenu(true);
}
@Override
@@ -84,4 +88,57 @@ public class MessageDetailFragment extends Fragment {
}
return rootView;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.message, menu);
Drawables.addIcon(getActivity(), menu, R.id.reply, GoogleMaterial.Icon.gmd_reply);
Drawables.addIcon(getActivity(), menu, R.id.delete, GoogleMaterial.Icon.gmd_delete);
Drawables.addIcon(getActivity(), menu, R.id.mark_unread, GoogleMaterial.Icon.gmd_markunread);
Drawables.addIcon(getActivity(), menu, R.id.archive, GoogleMaterial.Icon.gmd_archive);
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem menuItem) {
BitmessageContext bmc = Singleton.getBitmessageContext(getActivity());
switch (menuItem.getItemId()) {
case R.id.reply:
Intent replyIntent = new Intent(getActivity().getApplicationContext(), ComposeMessageActivity.class);
replyIntent.putExtra(ComposeMessageActivity.EXTRA_RECIPIENT, item.getFrom());
replyIntent.putExtra(ComposeMessageActivity.EXTRA_IDENTITY, item.getTo());
startActivity(replyIntent);
return true;
case R.id.delete:
if (isInTrash(item)) {
bmc.messages().remove(item);
} else {
item.getLabels().clear();
item.addLabels(bmc.messages().getLabels(Label.Type.TRASH));
bmc.messages().save(item);
}
return true;
case R.id.mark_unread:
item.addLabels(bmc.messages().getLabels(Label.Type.UNREAD));
bmc.messages().save(item);
return true;
case R.id.archive:
item.getLabels().clear();
bmc.messages().save(item);
return true;
default:
return false;
}
}
private boolean isInTrash(Plaintext item) {
for (Label label : item.getLabels()) {
if (label.getType() == Label.Type.TRASH) {
return true;
}
}
return false;
}
}