Direct insert of events when permission

pull/212/head
M66B 3 years ago
parent 00e9266a21
commit 20fa949297

@ -3691,8 +3691,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
return; return;
} }
if (BuildConfig.DEBUG && if (action == R.id.ibCalendar &&
action == R.id.ibCalendar &&
Helper.hasPermission(context, Manifest.permission.WRITE_CALENDAR)) { Helper.hasPermission(context, Manifest.permission.WRITE_CALENDAR)) {
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putLong("message", message.id); args.putLong("message", message.id);

@ -70,7 +70,7 @@ public class CalendarHelper {
return Helper.getTimeInstance(context, SimpleDateFormat.SHORT).format(cal.getTime()); return Helper.getTimeInstance(context, SimpleDateFormat.SHORT).format(cal.getTime());
} }
static void insert(Context context, ICalendar icalendar, VEvent event, int status, static Long insert(Context context, ICalendar icalendar, VEvent event, int status,
String selectedAccount, String selectedName, EntityMessage message) { String selectedAccount, String selectedName, EntityMessage message) {
String organizer = (event.getOrganizer() == null ? null : event.getOrganizer().getEmail()); String organizer = (event.getOrganizer() == null ? null : event.getOrganizer().getEmail());
@ -91,10 +91,10 @@ public class CalendarHelper {
String uid = (event.getUid() == null ? null : event.getUid().getValue()); String uid = (event.getUid() == null ? null : event.getUid().getValue());
if (TextUtils.isEmpty(uid) || start == null || end == null) { if (start == null || end == null) {
EntityLog.log(context, EntityLog.Type.General, message, EntityLog.log(context, EntityLog.Type.General, message,
"Event uid=" + uid + " start=" + start + " end=" + end); "Event start=" + start + " end=" + end);
return; return null;
} }
ContentResolver resolver = context.getContentResolver(); ContentResolver resolver = context.getContentResolver();
@ -203,8 +203,12 @@ public class CalendarHelper {
} catch (Throwable ex) { } catch (Throwable ex) {
Log.w(ex); Log.w(ex);
} }
return eventId;
} }
} }
return null;
} }
static void update(Context context, VEvent event, EntityMessage message) { static void update(Context context, VEvent event, EntityMessage message) {

@ -42,6 +42,7 @@ import android.app.PendingIntent;
import android.content.ActivityNotFoundException; import android.content.ActivityNotFoundException;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.ContentResolver; import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
@ -9615,9 +9616,9 @@ public class FragmentMessages extends FragmentBase
} }
private void onInsertCalendar(Bundle args) { private void onInsertCalendar(Bundle args) {
new SimpleTask<Void>() { new SimpleTask<Long>() {
@Override @Override
protected Void onExecute(Context context, Bundle args) throws Throwable { protected Long onExecute(Context context, Bundle args) throws Throwable {
long id = args.getLong("message"); long id = args.getLong("message");
int status = args.getInt("status"); int status = args.getInt("status");
String selectedAccount = args.getString("account"); String selectedAccount = args.getString("account");
@ -9644,15 +9645,19 @@ public class FragmentMessages extends FragmentBase
ICalendar icalendar = Biweekly.parse(calendar.getFile(context)).first(); ICalendar icalendar = Biweekly.parse(calendar.getFile(context)).first();
VEvent event = icalendar.getEvents().get(0); VEvent event = icalendar.getEvents().get(0);
CalendarHelper.insert(context, icalendar, event, status, return CalendarHelper.insert(context, icalendar, event, status,
selectedAccount, selectedName, message); selectedAccount, selectedName, message);
return null;
} }
@Override @Override
protected void onExecuted(Bundle args, Void data) { protected void onExecuted(Bundle args, Long eventId) {
ToastEx.makeText(getContext(), R.string.title_completed, Toast.LENGTH_LONG).show(); if (eventId == null)
return;
// https://developer.android.com/guide/topics/providers/calendar-provider.html#intent-view
Uri uri = ContentUris.withAppendedId(CalendarContract.Events.CONTENT_URI, eventId);
Intent intent = new Intent(Intent.ACTION_VIEW).setData(uri);
startActivity(intent);
} }
@Override @Override

@ -4045,9 +4045,6 @@ public class MessageHelper {
} }
private void decodeICalendar(Context context, EntityAttachment local) { private void decodeICalendar(Context context, EntityAttachment local) {
if (BuildConfig.DEBUG)
return;
DB db = DB.getInstance(context); DB db = DB.getInstance(context);
try { try {
boolean permission = Helper.hasPermission(context, Manifest.permission.WRITE_CALENDAR); boolean permission = Helper.hasPermission(context, Manifest.permission.WRITE_CALENDAR);

Loading…
Cancel
Save