diff --git a/app/src/main/java/com/todoroo/astrid/activity/ShareLinkActivity.java b/app/src/main/java/com/todoroo/astrid/activity/ShareLinkActivity.java
deleted file mode 100644
index 99e52b474..000000000
--- a/app/src/main/java/com/todoroo/astrid/activity/ShareLinkActivity.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package com.todoroo.astrid.activity;
-
-import static android.content.Intent.ACTION_SEND;
-import static android.content.Intent.ACTION_SEND_MULTIPLE;
-import static com.google.common.collect.Lists.newArrayList;
-import static org.tasks.Strings.isNullOrEmpty;
-import static org.tasks.files.FileHelper.copyToUri;
-import static org.tasks.files.FileHelper.getFilename;
-import static org.tasks.intents.TaskIntents.getEditTaskIntent;
-
-import android.content.Context;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.Bundle;
-import com.google.common.io.Files;
-import com.todoroo.astrid.data.Task;
-import com.todoroo.astrid.service.TaskCreator;
-import dagger.hilt.android.AndroidEntryPoint;
-import dagger.hilt.android.qualifiers.ApplicationContext;
-import java.util.ArrayList;
-import javax.inject.Inject;
-import org.tasks.data.TaskAttachment;
-import org.tasks.files.FileHelper;
-import org.tasks.injection.InjectingAppCompatActivity;
-import org.tasks.preferences.Preferences;
-import timber.log.Timber;
-
-/**
- * @author joshuagross
- *
Create a new task based on incoming links from the "share" menu
- */
-@AndroidEntryPoint
-public final class ShareLinkActivity extends InjectingAppCompatActivity {
-
- @Inject @ApplicationContext Context context;
- @Inject TaskCreator taskCreator;
- @Inject Preferences preferences;
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- Intent intent = getIntent();
- String action = intent.getAction();
-
- if (Intent.ACTION_PROCESS_TEXT.equals(action)) {
- CharSequence text = intent.getCharSequenceExtra(Intent.EXTRA_PROCESS_TEXT);
- if (text != null) {
- Task task = taskCreator.createWithValues(text.toString());
- editTask(task);
- }
- } else if (ACTION_SEND.equals(action)) {
- String subject = intent.getStringExtra(Intent.EXTRA_SUBJECT);
- Task task = taskCreator.createWithValues(subject);
- task.setNotes(intent.getStringExtra(Intent.EXTRA_TEXT));
- if (hasAttachments(intent)) {
- task.putTransitory(TaskAttachment.KEY, copyAttachment(intent));
- }
- editTask(task);
- } else if (ACTION_SEND_MULTIPLE.equals(action)) {
- Task task = taskCreator.createWithValues(intent.getStringExtra(Intent.EXTRA_SUBJECT));
- task.setNotes(intent.getStringExtra(Intent.EXTRA_TEXT));
- if (hasAttachments(intent)) {
- task.putTransitory(TaskAttachment.KEY, copyMultipleAttachments(intent));
- }
- editTask(task);
- } else {
- Timber.e("Unhandled intent: %s", intent);
- }
- finish();
- }
-
- private void editTask(Task task) {
- Intent intent = getEditTaskIntent(this, null, task);
- intent.putExtra(MainActivity.FINISH_AFFINITY, true);
- startActivity(intent);
- }
-
- private ArrayList copyAttachment(Intent intent) {
- Uri uri = intent.getParcelableExtra(Intent.EXTRA_STREAM);
- String filename = getFilename(context, uri);
- if (isNullOrEmpty(filename)) {
- String subject = intent.getStringExtra(Intent.EXTRA_SUBJECT);
- filename =
- isNullOrEmpty(subject)
- ? uri.getLastPathSegment()
- : subject.substring(0, Math.min(subject.length(), FileHelper.MAX_FILENAME_LENGTH));
- }
- String basename = Files.getNameWithoutExtension(filename);
- return newArrayList(copyToUri(context, preferences.getAttachmentsDirectory(), uri, basename));
- }
-
- private ArrayList copyMultipleAttachments(Intent intent) {
- ArrayList result = new ArrayList<>();
- ArrayList uris = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM);
- if (uris != null) {
- for (Uri uri : uris) {
- result.add(copyToUri(context, preferences.getAttachmentsDirectory(), uri));
- }
- }
- return result;
- }
-
- private boolean hasAttachments(Intent intent) {
- String type = intent.getType();
- return type != null && (type.startsWith("image/") || type.startsWith("application/"));
- }
-}
diff --git a/app/src/main/java/com/todoroo/astrid/activity/ShareLinkActivity.kt b/app/src/main/java/com/todoroo/astrid/activity/ShareLinkActivity.kt
new file mode 100644
index 000000000..e651cdfe8
--- /dev/null
+++ b/app/src/main/java/com/todoroo/astrid/activity/ShareLinkActivity.kt
@@ -0,0 +1,97 @@
+package com.todoroo.astrid.activity
+
+import android.content.Context
+import android.content.Intent
+import android.net.Uri
+import android.os.Bundle
+import com.google.common.collect.Lists
+import com.google.common.io.Files
+import com.todoroo.astrid.data.Task
+import com.todoroo.astrid.service.TaskCreator
+import dagger.hilt.android.AndroidEntryPoint
+import dagger.hilt.android.qualifiers.ApplicationContext
+import org.tasks.Strings.isNullOrEmpty
+import org.tasks.data.TaskAttachment
+import org.tasks.files.FileHelper
+import org.tasks.injection.InjectingAppCompatActivity
+import org.tasks.intents.TaskIntents
+import org.tasks.preferences.Preferences
+import timber.log.Timber
+import java.util.*
+import javax.inject.Inject
+
+/**
+ * @author joshuagross
+ *
+ * Create a new task based on incoming links from the "share" menu
+ */
+@AndroidEntryPoint
+class ShareLinkActivity : InjectingAppCompatActivity() {
+ @Inject @ApplicationContext lateinit var context: Context
+ @Inject lateinit var taskCreator: TaskCreator
+ @Inject lateinit var preferences: Preferences
+
+ public override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ val intent = intent
+ val action = intent.action
+ if (Intent.ACTION_PROCESS_TEXT == action) {
+ val text = intent.getCharSequenceExtra(Intent.EXTRA_PROCESS_TEXT)
+ if (text != null) {
+ val task = taskCreator.createWithValues(text.toString())
+ editTask(task)
+ }
+ } else if (Intent.ACTION_SEND == action) {
+ val subject = intent.getStringExtra(Intent.EXTRA_SUBJECT)
+ val task = taskCreator.createWithValues(subject)
+ task.notes = intent.getStringExtra(Intent.EXTRA_TEXT)
+ if (hasAttachments(intent)) {
+ task.putTransitory(TaskAttachment.KEY, copyAttachment(intent))
+ }
+ editTask(task)
+ } else if (Intent.ACTION_SEND_MULTIPLE == action) {
+ val task = taskCreator.createWithValues(intent.getStringExtra(Intent.EXTRA_SUBJECT))
+ task.notes = intent.getStringExtra(Intent.EXTRA_TEXT)
+ if (hasAttachments(intent)) {
+ task.putTransitory(TaskAttachment.KEY, copyMultipleAttachments(intent))
+ }
+ editTask(task)
+ } else {
+ Timber.e("Unhandled intent: %s", intent)
+ }
+ finish()
+ }
+
+ private fun editTask(task: Task) {
+ val intent = TaskIntents.getEditTaskIntent(this, null, task)
+ intent.putExtra(MainActivity.FINISH_AFFINITY, true)
+ startActivity(intent)
+ }
+
+ private fun copyAttachment(intent: Intent): ArrayList {
+ val uri = intent.getParcelableExtra(Intent.EXTRA_STREAM)
+ var filename = FileHelper.getFilename(context, uri)
+ if (isNullOrEmpty(filename)) {
+ val subject = intent.getStringExtra(Intent.EXTRA_SUBJECT)
+ filename = if (isNullOrEmpty(subject)) uri.lastPathSegment else subject.substring(0, Math.min(subject.length, FileHelper.MAX_FILENAME_LENGTH))
+ }
+ val basename = Files.getNameWithoutExtension(filename!!)
+ return Lists.newArrayList(FileHelper.copyToUri(context, preferences.attachmentsDirectory, uri, basename))
+ }
+
+ private fun copyMultipleAttachments(intent: Intent): ArrayList {
+ val result = ArrayList()
+ val uris = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM)
+ if (uris != null) {
+ for (uri in uris) {
+ result.add(FileHelper.copyToUri(context, preferences.attachmentsDirectory, uri))
+ }
+ }
+ return result
+ }
+
+ private fun hasAttachments(intent: Intent): Boolean {
+ val type = intent.type
+ return type != null && (type.startsWith("image/") || type.startsWith("application/"))
+ }
+}
\ No newline at end of file