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);
ibCalendar.setOnClickListener(this);
btnCalendarAccept.setOnLongClickListener(this);
btnCalendarDecline.setOnLongClickListener(this);
btnCalendarMaybe.setOnLongClickListener(this);
gestureDetector = new ScaleGestureDetector(context, new ScaleGestureDetector.SimpleOnScaleGestureListener() {
@Override
public boolean onScale(ScaleGestureDetector detector) {
@ -674,6 +678,10 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
btnCalendarDecline.setOnClickListener(null);
btnCalendarMaybe.setOnClickListener(null);
ibCalendar.setOnClickListener(null);
btnCalendarAccept.setOnLongClickListener(null);
btnCalendarDecline.setOnLongClickListener(null);
btnCalendarMaybe.setOnLongClickListener(null);
}
if (accessibility)
@ -1880,7 +1888,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
}.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)) {
context.startActivity(new Intent(context, ActivityBilling.class));
return;
@ -1889,6 +1897,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
Bundle args = new Bundle();
args.putLong("id", message.id);
args.putInt("action", action);
args.putBoolean("share", share);
new SimpleTask<Object>() {
@Override
@ -1982,7 +1991,10 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
response.setMethod(Method.REPLY);
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);
return ics;
@ -2007,12 +2019,16 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
break;
}
Intent reply = new Intent(context, ActivityCompose.class)
.putExtra("action", "participation")
.putExtra("reference", args.getLong("id"))
.putExtra("ics", (File) result)
.putExtra("status", status);
context.startActivity(reply);
if (args.getBoolean("share"))
Helper.share(context, (File) result, "text/calendar", action + ".ics");
else {
Intent reply = new Intent(context, ActivityCompose.class)
.putExtra("action", "participation")
.putExtra("reference", args.getLong("id"))
.putExtra("ics", (File) result)
.putExtra("status", status);
context.startActivity(reply);
}
} else if (result instanceof Intent) {
context.startActivity((Intent) result);
}
@ -2127,7 +2143,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
case R.id.btnCalendarDecline:
case R.id.btnCalendarMaybe:
case R.id.ibCalendar:
onActionCalendar(message, view.getId());
onActionCalendar(message, view.getId(), false);
break;
default:
onToggleMessage(message);
@ -2274,12 +2290,18 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
if (message == null || message.folderReadOnly)
return false;
if (view.getId() == R.id.ibFlagged) {
onMenuColoredStar(message);
return true;
switch (view.getId()) {
case R.id.ibFlagged:
onMenuColoredStar(message);
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

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

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

Loading…
Cancel
Save