Added sharing of calendar actions

pull/172/head
M66B 6 years ago
parent 16210b561c
commit e5f67ef64b

@ -611,6 +611,10 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
btnCalendarMaybe.setOnClickListener(this); btnCalendarMaybe.setOnClickListener(this);
ibCalendar.setOnClickListener(this); ibCalendar.setOnClickListener(this);
btnCalendarAccept.setOnLongClickListener(this);
btnCalendarDecline.setOnLongClickListener(this);
btnCalendarMaybe.setOnLongClickListener(this);
gestureDetector = new ScaleGestureDetector(context, new ScaleGestureDetector.SimpleOnScaleGestureListener() { gestureDetector = new ScaleGestureDetector(context, new ScaleGestureDetector.SimpleOnScaleGestureListener() {
@Override @Override
public boolean onScale(ScaleGestureDetector detector) { public boolean onScale(ScaleGestureDetector detector) {
@ -674,6 +678,10 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
btnCalendarDecline.setOnClickListener(null); btnCalendarDecline.setOnClickListener(null);
btnCalendarMaybe.setOnClickListener(null); btnCalendarMaybe.setOnClickListener(null);
ibCalendar.setOnClickListener(null); ibCalendar.setOnClickListener(null);
btnCalendarAccept.setOnLongClickListener(null);
btnCalendarDecline.setOnLongClickListener(null);
btnCalendarMaybe.setOnLongClickListener(null);
} }
if (accessibility) if (accessibility)
@ -1880,7 +1888,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
}.setLog(false).execute(context, owner, args, "message:calendar"); }.setLog(false).execute(context, owner, args, "message:calendar");
} }
private void onActionCalendar(TupleMessageEx message, int action) { private void onActionCalendar(TupleMessageEx message, int action, boolean share) {
if (!ActivityBilling.isPro(context)) { if (!ActivityBilling.isPro(context)) {
context.startActivity(new Intent(context, ActivityBilling.class)); context.startActivity(new Intent(context, ActivityBilling.class));
return; return;
@ -1889,6 +1897,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putLong("id", message.id); args.putLong("id", message.id);
args.putInt("action", action); args.putInt("action", action);
args.putBoolean("share", share);
new SimpleTask<Object>() { new SimpleTask<Object>() {
@Override @Override
@ -1982,7 +1991,10 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
response.setMethod(Method.REPLY); response.setMethod(Method.REPLY);
response.addEvent(ev); response.addEvent(ev);
File ics = File.createTempFile("calendar", ".ics", context.getCacheDir()); File dir = new File(context.getCacheDir(), "calendar");
if (!dir.exists())
dir.mkdir();
File ics = new File(dir, message.id + ".ics");
response.write(ics); response.write(ics);
return ics; return ics;
@ -2007,12 +2019,16 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
break; break;
} }
if (args.getBoolean("share"))
Helper.share(context, (File) result, "text/calendar", action + ".ics");
else {
Intent reply = new Intent(context, ActivityCompose.class) Intent reply = new Intent(context, ActivityCompose.class)
.putExtra("action", "participation") .putExtra("action", "participation")
.putExtra("reference", args.getLong("id")) .putExtra("reference", args.getLong("id"))
.putExtra("ics", (File) result) .putExtra("ics", (File) result)
.putExtra("status", status); .putExtra("status", status);
context.startActivity(reply); context.startActivity(reply);
}
} else if (result instanceof Intent) { } else if (result instanceof Intent) {
context.startActivity((Intent) result); context.startActivity((Intent) result);
} }
@ -2127,7 +2143,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
case R.id.btnCalendarDecline: case R.id.btnCalendarDecline:
case R.id.btnCalendarMaybe: case R.id.btnCalendarMaybe:
case R.id.ibCalendar: case R.id.ibCalendar:
onActionCalendar(message, view.getId()); onActionCalendar(message, view.getId(), false);
break; break;
default: default:
onToggleMessage(message); onToggleMessage(message);
@ -2274,13 +2290,19 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
if (message == null || message.folderReadOnly) if (message == null || message.folderReadOnly)
return false; return false;
if (view.getId() == R.id.ibFlagged) { switch (view.getId()) {
case R.id.ibFlagged:
onMenuColoredStar(message); onMenuColoredStar(message);
return true; return true;
} case R.id.btnCalendarAccept:
case R.id.btnCalendarDecline:
case R.id.btnCalendarMaybe:
onActionCalendar(message, view.getId(), true);
return true;
default:
return false; return false;
} }
}
@Override @Override
public boolean onKey(View view, int keyCode, KeyEvent keyEvent) { public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {

@ -118,6 +118,7 @@ public class WorkerCleanup extends Worker {
File[] messages = new File(context.getFilesDir(), "messages").listFiles(); File[] messages = new File(context.getFilesDir(), "messages").listFiles();
File[] revision = new File(context.getFilesDir(), "revision").listFiles(); File[] revision = new File(context.getFilesDir(), "revision").listFiles();
File[] references = new File(context.getFilesDir(), "references").listFiles(); File[] references = new File(context.getFilesDir(), "references").listFiles();
File[] calendars = new File(context.getCacheDir(), "calendar").listFiles();
if (messages != null) if (messages != null)
files.addAll(Arrays.asList(messages)); files.addAll(Arrays.asList(messages));
@ -125,6 +126,8 @@ public class WorkerCleanup extends Worker {
files.addAll(Arrays.asList(revision)); files.addAll(Arrays.asList(revision));
if (references != null) if (references != null)
files.addAll(Arrays.asList(references)); files.addAll(Arrays.asList(references));
if (calendars != null)
files.addAll(Arrays.asList(calendars));
// Cleanup message files // Cleanup message files
Log.i("Cleanup message files"); Log.i("Cleanup message files");

@ -9,4 +9,7 @@
<cache-path <cache-path
name="photo" name="photo"
path="photo" /> path="photo" />
<cache-path
name="calendar"
path="calendar" />
</paths> </paths>

Loading…
Cancel
Save