Loading app/build.gradle +5 −5 Original line number Diff line number Diff line Loading @@ -13,8 +13,8 @@ android { applicationId "it.niedermann.owncloud.notes" minSdkVersion 16 targetSdkVersion 29 versionCode 2012001 versionName "2.12.1" versionCode 2012002 versionName "2.12.2" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } Loading Loading @@ -56,15 +56,15 @@ android { dependencies { // Nextcloud SSO implementation "com.github.nextcloud:Android-SingleSignOn:0.5.0" implementation "com.github.nextcloud:Android-SingleSignOn:0.5.1" // Markdown implementation 'com.yydcdut:markdown-processor:0.1.3' implementation 'com.yydcdut:rxmarkdown-wrapper:0.1.3' // Glide implementation 'com.github.bumptech.glide:glide:4.10.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.10.0' implementation 'com.github.bumptech.glide:glide:4.11.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0' // Android X implementation "androidx.appcompat:appcompat:1.1.0" Loading app/src/main/java/it/niedermann/owncloud/notes/android/MultiSelectedActionModeCallback.java +19 −0 Original line number Diff line number Diff line package it.niedermann.owncloud.notes.android; import android.content.Context; import android.text.TextUtils; import android.view.Menu; import android.view.MenuItem; import android.view.View; Loading @@ -27,6 +28,7 @@ import it.niedermann.owncloud.notes.model.DBNote; import it.niedermann.owncloud.notes.model.ItemAdapter; import it.niedermann.owncloud.notes.persistence.NoteServerSyncHelper.ViewProvider; import it.niedermann.owncloud.notes.persistence.NotesDatabase; import it.niedermann.owncloud.notes.util.ShareUtil; public class MultiSelectedActionModeCallback implements Callback { Loading Loading @@ -109,6 +111,23 @@ public class MultiSelectedActionModeCallback implements Callback { case R.id.menu_move: AccountChooserDialogFragment.newInstance().show(fragmentManager, NotesListViewActivity.class.getSimpleName()); return true; case R.id.menu_share: final String subject = (adapter.getSelected().size() == 1) ? ((DBNote) adapter.getItem(adapter.getSelected().get(0))).getTitle() : context.getString(R.string.share_multiple, adapter.getSelected().size()); final StringBuilder noteContents = new StringBuilder(); for (Integer i : adapter.getSelected()) { final DBNote noteWithoutContent = (DBNote) adapter.getItem(i); final String tempFullNote = db.getNote(noteWithoutContent.getAccountId(), noteWithoutContent.getId()).getContent(); if (!TextUtils.isEmpty(tempFullNote)) { if (noteContents.length() > 0) { noteContents.append("\n\n"); } noteContents.append(tempFullNote); } } ShareUtil.openShareDialog(context, subject, noteContents.toString()); return true; default: return false; } Loading app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidget.java +1 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ public class NoteListWidget extends AppWidgetProvider { PendingIntent.FLAG_UPDATE_CURRENT); // Launch create note activity if user taps "+" icon on header PendingIntent newNoteI = PendingIntent.getActivity(context, PENDING_INTENT_NEW_NOTE_RQ, PendingIntent newNoteI = PendingIntent.getActivity(context, (PENDING_INTENT_NEW_NOTE_RQ + appWidgetId), new Intent(context, EditNoteActivity.class).putExtra(PARAM_CATEGORY, new Category(category, data.getMode() == MODE_DISPLAY_STARRED)), PendingIntent.FLAG_UPDATE_CURRENT); Loading app/src/main/java/it/niedermann/owncloud/notes/android/fragment/BaseNoteFragment.java +2 −16 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ import android.view.MenuItem; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.widget.ShareActionProvider; import androidx.core.view.MenuItemCompat; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; Loading @@ -36,6 +34,7 @@ import it.niedermann.owncloud.notes.model.ISyncCallback; import it.niedermann.owncloud.notes.model.LocalAccount; import it.niedermann.owncloud.notes.persistence.NotesDatabase; import it.niedermann.owncloud.notes.util.NoteUtil; import it.niedermann.owncloud.notes.util.ShareUtil; import static androidx.core.content.pm.ShortcutManagerCompat.isRequestPinShortcutSupported; import static it.niedermann.owncloud.notes.android.activity.EditNoteActivity.ACTION_SHORTCUT; Loading Loading @@ -195,20 +194,7 @@ public abstract class BaseNoteFragment extends Fragment implements CategoryDialo AccountChooserDialogFragment.newInstance().show(requireActivity().getSupportFragmentManager(), BaseNoteFragment.class.getSimpleName()); return true; case R.id.menu_share: Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND); shareIntent.setType("text/plain"); shareIntent.putExtra(Intent.EXTRA_SUBJECT, note.getTitle()); shareIntent.putExtra(Intent.EXTRA_TEXT, note.getContent()); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { startActivity(Intent.createChooser(shareIntent, note.getTitle())); } else { ShareActionProvider actionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(item); actionProvider.setShareIntent(shareIntent); } ShareUtil.openShareDialog(requireContext(), note.getTitle(), note.getContent()); return false; case MENU_ID_PIN: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { Loading app/src/main/java/it/niedermann/owncloud/notes/util/ShareUtil.java 0 → 100644 +20 −0 Original line number Diff line number Diff line package it.niedermann.owncloud.notes.util; import android.content.Context; import android.content.Intent; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import static android.content.ClipDescription.MIMETYPE_TEXT_PLAIN; public class ShareUtil { public static void openShareDialog(@NonNull Context context, @Nullable String subject, @Nullable String text) { context.startActivity(Intent.createChooser(new Intent() .setAction(Intent.ACTION_SEND) .setType(MIMETYPE_TEXT_PLAIN) .putExtra(Intent.EXTRA_SUBJECT, subject) .putExtra(Intent.EXTRA_TITLE, subject) .putExtra(Intent.EXTRA_TEXT, text), subject)); } } Loading
app/build.gradle +5 −5 Original line number Diff line number Diff line Loading @@ -13,8 +13,8 @@ android { applicationId "it.niedermann.owncloud.notes" minSdkVersion 16 targetSdkVersion 29 versionCode 2012001 versionName "2.12.1" versionCode 2012002 versionName "2.12.2" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } Loading Loading @@ -56,15 +56,15 @@ android { dependencies { // Nextcloud SSO implementation "com.github.nextcloud:Android-SingleSignOn:0.5.0" implementation "com.github.nextcloud:Android-SingleSignOn:0.5.1" // Markdown implementation 'com.yydcdut:markdown-processor:0.1.3' implementation 'com.yydcdut:rxmarkdown-wrapper:0.1.3' // Glide implementation 'com.github.bumptech.glide:glide:4.10.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.10.0' implementation 'com.github.bumptech.glide:glide:4.11.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0' // Android X implementation "androidx.appcompat:appcompat:1.1.0" Loading
app/src/main/java/it/niedermann/owncloud/notes/android/MultiSelectedActionModeCallback.java +19 −0 Original line number Diff line number Diff line package it.niedermann.owncloud.notes.android; import android.content.Context; import android.text.TextUtils; import android.view.Menu; import android.view.MenuItem; import android.view.View; Loading @@ -27,6 +28,7 @@ import it.niedermann.owncloud.notes.model.DBNote; import it.niedermann.owncloud.notes.model.ItemAdapter; import it.niedermann.owncloud.notes.persistence.NoteServerSyncHelper.ViewProvider; import it.niedermann.owncloud.notes.persistence.NotesDatabase; import it.niedermann.owncloud.notes.util.ShareUtil; public class MultiSelectedActionModeCallback implements Callback { Loading Loading @@ -109,6 +111,23 @@ public class MultiSelectedActionModeCallback implements Callback { case R.id.menu_move: AccountChooserDialogFragment.newInstance().show(fragmentManager, NotesListViewActivity.class.getSimpleName()); return true; case R.id.menu_share: final String subject = (adapter.getSelected().size() == 1) ? ((DBNote) adapter.getItem(adapter.getSelected().get(0))).getTitle() : context.getString(R.string.share_multiple, adapter.getSelected().size()); final StringBuilder noteContents = new StringBuilder(); for (Integer i : adapter.getSelected()) { final DBNote noteWithoutContent = (DBNote) adapter.getItem(i); final String tempFullNote = db.getNote(noteWithoutContent.getAccountId(), noteWithoutContent.getId()).getContent(); if (!TextUtils.isEmpty(tempFullNote)) { if (noteContents.length() > 0) { noteContents.append("\n\n"); } noteContents.append(tempFullNote); } } ShareUtil.openShareDialog(context, subject, noteContents.toString()); return true; default: return false; } Loading
app/src/main/java/it/niedermann/owncloud/notes/android/appwidget/NoteListWidget.java +1 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ public class NoteListWidget extends AppWidgetProvider { PendingIntent.FLAG_UPDATE_CURRENT); // Launch create note activity if user taps "+" icon on header PendingIntent newNoteI = PendingIntent.getActivity(context, PENDING_INTENT_NEW_NOTE_RQ, PendingIntent newNoteI = PendingIntent.getActivity(context, (PENDING_INTENT_NEW_NOTE_RQ + appWidgetId), new Intent(context, EditNoteActivity.class).putExtra(PARAM_CATEGORY, new Category(category, data.getMode() == MODE_DISPLAY_STARRED)), PendingIntent.FLAG_UPDATE_CURRENT); Loading
app/src/main/java/it/niedermann/owncloud/notes/android/fragment/BaseNoteFragment.java +2 −16 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ import android.view.MenuItem; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.widget.ShareActionProvider; import androidx.core.view.MenuItemCompat; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; Loading @@ -36,6 +34,7 @@ import it.niedermann.owncloud.notes.model.ISyncCallback; import it.niedermann.owncloud.notes.model.LocalAccount; import it.niedermann.owncloud.notes.persistence.NotesDatabase; import it.niedermann.owncloud.notes.util.NoteUtil; import it.niedermann.owncloud.notes.util.ShareUtil; import static androidx.core.content.pm.ShortcutManagerCompat.isRequestPinShortcutSupported; import static it.niedermann.owncloud.notes.android.activity.EditNoteActivity.ACTION_SHORTCUT; Loading Loading @@ -195,20 +194,7 @@ public abstract class BaseNoteFragment extends Fragment implements CategoryDialo AccountChooserDialogFragment.newInstance().show(requireActivity().getSupportFragmentManager(), BaseNoteFragment.class.getSimpleName()); return true; case R.id.menu_share: Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND); shareIntent.setType("text/plain"); shareIntent.putExtra(Intent.EXTRA_SUBJECT, note.getTitle()); shareIntent.putExtra(Intent.EXTRA_TEXT, note.getContent()); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { startActivity(Intent.createChooser(shareIntent, note.getTitle())); } else { ShareActionProvider actionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(item); actionProvider.setShareIntent(shareIntent); } ShareUtil.openShareDialog(requireContext(), note.getTitle(), note.getContent()); return false; case MENU_ID_PIN: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { Loading
app/src/main/java/it/niedermann/owncloud/notes/util/ShareUtil.java 0 → 100644 +20 −0 Original line number Diff line number Diff line package it.niedermann.owncloud.notes.util; import android.content.Context; import android.content.Intent; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import static android.content.ClipDescription.MIMETYPE_TEXT_PLAIN; public class ShareUtil { public static void openShareDialog(@NonNull Context context, @Nullable String subject, @Nullable String text) { context.startActivity(Intent.createChooser(new Intent() .setAction(Intent.ACTION_SEND) .setType(MIMETYPE_TEXT_PLAIN) .putExtra(Intent.EXTRA_SUBJECT, subject) .putExtra(Intent.EXTRA_TITLE, subject) .putExtra(Intent.EXTRA_TEXT, text), subject)); } }