Added some actions
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user