Direct insert of events when permission

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

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

@ -70,7 +70,7 @@ public class CalendarHelper {
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 organizer = (event.getOrganizer() == null ? null : event.getOrganizer().getEmail());
@ -91,10 +91,10 @@ public class CalendarHelper {
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,
"Event uid=" + uid + " start=" + start + " end=" + end);
return;
"Event start=" + start + " end=" + end);
return null;
}
ContentResolver resolver = context.getContentResolver();
@ -203,8 +203,12 @@ public class CalendarHelper {
} catch (Throwable ex) {
Log.w(ex);
}
return eventId;
}
}
return null;
}
static void update(Context context, VEvent event, EntityMessage message) {

@ -42,6 +42,7 @@ import android.app.PendingIntent;
import android.content.ActivityNotFoundException;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
@ -9615,9 +9616,9 @@ public class FragmentMessages extends FragmentBase
}
private void onInsertCalendar(Bundle args) {
new SimpleTask<Void>() {
new SimpleTask<Long>() {
@Override
protected Void onExecute(Context context, Bundle args) throws Throwable {
protected Long onExecute(Context context, Bundle args) throws Throwable {
long id = args.getLong("message");
int status = args.getInt("status");
String selectedAccount = args.getString("account");
@ -9644,15 +9645,19 @@ public class FragmentMessages extends FragmentBase
ICalendar icalendar = Biweekly.parse(calendar.getFile(context)).first();
VEvent event = icalendar.getEvents().get(0);
CalendarHelper.insert(context, icalendar, event, status,
return CalendarHelper.insert(context, icalendar, event, status,
selectedAccount, selectedName, message);
return null;
}
@Override
protected void onExecuted(Bundle args, Void data) {
ToastEx.makeText(getContext(), R.string.title_completed, Toast.LENGTH_LONG).show();
protected void onExecuted(Bundle args, Long eventId) {
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

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

Loading…
Cancel
Save