Loading app/src/main/java/it/niedermann/owncloud/notes/android/activity/EditNoteActivity.java +4 −2 Original line number Diff line number Diff line Loading @@ -9,10 +9,11 @@ import android.util.Log; import android.view.Menu; import android.view.MenuItem; import java.util.Calendar; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; import java.util.Calendar; import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.android.fragment.BaseNoteFragment; import it.niedermann.owncloud.notes.android.fragment.NoteEditFragment; Loading @@ -24,6 +25,7 @@ import it.niedermann.owncloud.notes.util.NoteUtil; public class EditNoteActivity extends AppCompatActivity implements BaseNoteFragment.NoteFragmentListener { public static final String ACTION_SHORTCUT = "it.niedermann.owncloud.notes.shortcut"; private static final String INTENT_GOOGLE_ASSISTANT = "com.google.android.gm.action.AUTO_SEND"; private static final String MIMETYPE_TEXT_PLAIN = "text/plain"; public static final String PARAM_NOTE_ID = "noteId"; Loading app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java +30 −2 Original line number Diff line number Diff line Loading @@ -3,8 +3,11 @@ package it.niedermann.owncloud.notes.android.activity; import android.app.SearchManager; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.ShortcutInfo; import android.content.pm.ShortcutManager; import android.content.res.Configuration; import android.graphics.Canvas; import android.graphics.drawable.Icon; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; Loading Loading @@ -55,6 +58,8 @@ import it.niedermann.owncloud.notes.util.ICallback; import it.niedermann.owncloud.notes.util.NoteUtil; import it.niedermann.owncloud.notes.util.NotesClientUtil; import static it.niedermann.owncloud.notes.android.activity.EditNoteActivity.ACTION_SHORTCUT; public class NotesListViewActivity extends AppCompatActivity implements ItemAdapter.NoteClickListener { public static final String CREATED_NOTE = "it.niedermann.owncloud.notes.created_notes"; Loading Loading @@ -110,6 +115,29 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap } refreshLists(); swipeRefreshLayout.setRefreshing(false); new Thread(() -> { if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N_MR1) { ShortcutManager shortcutManager = getApplicationContext().getSystemService(ShortcutManager.class); if (!shortcutManager.isRateLimitingActive()) { List<ShortcutInfo> newShortcuts = new ArrayList<>(); for (DBNote note : db.getRecentNotes()) { Intent intent = new Intent(getApplicationContext(), EditNoteActivity.class); intent.putExtra(EditNoteActivity.PARAM_NOTE_ID, note.getId()); intent.setAction(ACTION_SHORTCUT); newShortcuts.add(new ShortcutInfo.Builder(getApplicationContext(), note.getId() + "") .setShortLabel(note.getTitle()) .setIcon(Icon.createWithResource(getApplicationContext(), note.isFavorite() ? R.drawable.ic_star_yellow_24dp : R.drawable.ic_star_grey_ccc_24dp)) .setIntent(intent) .build()); } Log.d(getClass().getSimpleName(), "Update dynamic shortcuts"); shortcutManager.removeAllDynamicShortcuts(); shortcutManager.addDynamicShortcuts(newShortcuts); } } }).run(); } @Override Loading app/src/main/java/it/niedermann/owncloud/notes/persistence/NoteSQLiteOpenHelper.java +17 −4 Original line number Diff line number Diff line Loading @@ -9,15 +9,16 @@ import android.database.sqlite.SQLiteOpenHelper; import android.text.TextUtils; import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.WorkerThread; import java.util.ArrayList; import java.util.Calendar; import java.util.HashMap; import java.util.List; import java.util.Map; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.WorkerThread; import it.niedermann.owncloud.notes.android.appwidget.NoteListWidget; import it.niedermann.owncloud.notes.android.appwidget.SingleNoteWidget; import it.niedermann.owncloud.notes.model.CloudNote; Loading Loading @@ -243,11 +244,17 @@ public class NoteSQLiteOpenHelper extends SQLiteOpenHelper { @NonNull @WorkerThread private List<DBNote> getNotesCustom(@NonNull String selection, @NonNull String[] selectionArgs, @Nullable String orderBy) { return this.getNotesCustom(selection, selectionArgs, orderBy, null); } @NonNull @WorkerThread private List<DBNote> getNotesCustom(@NonNull String selection, @NonNull String[] selectionArgs, @Nullable String orderBy, @Nullable String limit) { SQLiteDatabase db = getReadableDatabase(); if (selectionArgs.length > 2) { Log.v("Note", selection + " ---- " + selectionArgs[0] + " " + selectionArgs[1] + " " + selectionArgs[2]); } Cursor cursor = db.query(table_notes, columns, selection, selectionArgs, null, null, orderBy); Cursor cursor = db.query(table_notes, columns, selection, selectionArgs, null, null, orderBy, limit); List<DBNote> notes = new ArrayList<>(); while (cursor.moveToNext()) { notes.add(getNoteFromCursor(cursor)); Loading Loading @@ -301,6 +308,12 @@ public class NoteSQLiteOpenHelper extends SQLiteOpenHelper { return getNotesCustom(key_status + " != ?", new String[]{DBStatus.LOCAL_DELETED.getTitle()}, default_order); } @NonNull @WorkerThread public List<DBNote> getRecentNotes() { return getNotesCustom(key_status + " != ?", new String[]{DBStatus.LOCAL_DELETED.getTitle()}, key_modified + " DESC", "4"); } /** * Returns a list of all Notes in the Database * Loading app/src/main/res/xml/shortcuts.xml +0 −36 Original line number Diff line number Diff line Loading @@ -12,40 +12,4 @@ android:targetClass="it.niedermann.owncloud.notes.android.activity.EditNoteActivity" /> <categories android:name="android.shortcut.conversation" /> </shortcut> <shortcut android:shortcutId="it.niedermann.owncloud.notes.recent" android:enabled="true" android:icon="@drawable/ic_access_time_grey600_24dp" android:shortcutShortLabel="@string/action_recent" > <intent android:action="it.niedermann.owncloud.notes.recent" android:targetPackage="it.niedermann.owncloud.notes" android:targetClass="it.niedermann.owncloud.notes.android.activity.NotesListViewActivity" /> <categories android:name="android.shortcut.conversation" /> </shortcut> <shortcut android:shortcutId="it.niedermann.owncloud.notes.favorite" android:enabled="true" android:icon="@drawable/ic_star_grey_ccc_24dp" android:shortcutShortLabel="@string/label_favorites" > <intent android:action="it.niedermann.owncloud.notes.favorites" android:targetPackage="it.niedermann.owncloud.notes" android:targetClass="it.niedermann.owncloud.notes.android.activity.NotesListViewActivity" /> <categories android:name="android.shortcut.conversation" /> </shortcut> <shortcut android:shortcutId="it.niedermann.owncloud.notes.settings" android:enabled="true" android:icon="@drawable/ic_settings_grey600_24dp" android:shortcutShortLabel="@string/action_settings" > <intent android:action="android.intent.action.VIEW" android:targetPackage="it.niedermann.owncloud.notes" android:targetClass="it.niedermann.owncloud.notes.android.activity.PreferencesActivity" /> <categories android:name="android.shortcut.conversation" /> </shortcut> </shortcuts> No newline at end of file cert4android @ 4fac9b14 Compare 1c399797 to 4fac9b14 Original line number Diff line number Diff line Subproject commit 1c3997978c3cc278e26cd63735ba860b1a399bbd Subproject commit 4fac9b14bc4e35fd317bcb75ae5e7f39c22b3c75 Loading
app/src/main/java/it/niedermann/owncloud/notes/android/activity/EditNoteActivity.java +4 −2 Original line number Diff line number Diff line Loading @@ -9,10 +9,11 @@ import android.util.Log; import android.view.Menu; import android.view.MenuItem; import java.util.Calendar; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; import java.util.Calendar; import it.niedermann.owncloud.notes.R; import it.niedermann.owncloud.notes.android.fragment.BaseNoteFragment; import it.niedermann.owncloud.notes.android.fragment.NoteEditFragment; Loading @@ -24,6 +25,7 @@ import it.niedermann.owncloud.notes.util.NoteUtil; public class EditNoteActivity extends AppCompatActivity implements BaseNoteFragment.NoteFragmentListener { public static final String ACTION_SHORTCUT = "it.niedermann.owncloud.notes.shortcut"; private static final String INTENT_GOOGLE_ASSISTANT = "com.google.android.gm.action.AUTO_SEND"; private static final String MIMETYPE_TEXT_PLAIN = "text/plain"; public static final String PARAM_NOTE_ID = "noteId"; Loading
app/src/main/java/it/niedermann/owncloud/notes/android/activity/NotesListViewActivity.java +30 −2 Original line number Diff line number Diff line Loading @@ -3,8 +3,11 @@ package it.niedermann.owncloud.notes.android.activity; import android.app.SearchManager; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.ShortcutInfo; import android.content.pm.ShortcutManager; import android.content.res.Configuration; import android.graphics.Canvas; import android.graphics.drawable.Icon; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; Loading Loading @@ -55,6 +58,8 @@ import it.niedermann.owncloud.notes.util.ICallback; import it.niedermann.owncloud.notes.util.NoteUtil; import it.niedermann.owncloud.notes.util.NotesClientUtil; import static it.niedermann.owncloud.notes.android.activity.EditNoteActivity.ACTION_SHORTCUT; public class NotesListViewActivity extends AppCompatActivity implements ItemAdapter.NoteClickListener { public static final String CREATED_NOTE = "it.niedermann.owncloud.notes.created_notes"; Loading Loading @@ -110,6 +115,29 @@ public class NotesListViewActivity extends AppCompatActivity implements ItemAdap } refreshLists(); swipeRefreshLayout.setRefreshing(false); new Thread(() -> { if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N_MR1) { ShortcutManager shortcutManager = getApplicationContext().getSystemService(ShortcutManager.class); if (!shortcutManager.isRateLimitingActive()) { List<ShortcutInfo> newShortcuts = new ArrayList<>(); for (DBNote note : db.getRecentNotes()) { Intent intent = new Intent(getApplicationContext(), EditNoteActivity.class); intent.putExtra(EditNoteActivity.PARAM_NOTE_ID, note.getId()); intent.setAction(ACTION_SHORTCUT); newShortcuts.add(new ShortcutInfo.Builder(getApplicationContext(), note.getId() + "") .setShortLabel(note.getTitle()) .setIcon(Icon.createWithResource(getApplicationContext(), note.isFavorite() ? R.drawable.ic_star_yellow_24dp : R.drawable.ic_star_grey_ccc_24dp)) .setIntent(intent) .build()); } Log.d(getClass().getSimpleName(), "Update dynamic shortcuts"); shortcutManager.removeAllDynamicShortcuts(); shortcutManager.addDynamicShortcuts(newShortcuts); } } }).run(); } @Override Loading
app/src/main/java/it/niedermann/owncloud/notes/persistence/NoteSQLiteOpenHelper.java +17 −4 Original line number Diff line number Diff line Loading @@ -9,15 +9,16 @@ import android.database.sqlite.SQLiteOpenHelper; import android.text.TextUtils; import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.WorkerThread; import java.util.ArrayList; import java.util.Calendar; import java.util.HashMap; import java.util.List; import java.util.Map; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.WorkerThread; import it.niedermann.owncloud.notes.android.appwidget.NoteListWidget; import it.niedermann.owncloud.notes.android.appwidget.SingleNoteWidget; import it.niedermann.owncloud.notes.model.CloudNote; Loading Loading @@ -243,11 +244,17 @@ public class NoteSQLiteOpenHelper extends SQLiteOpenHelper { @NonNull @WorkerThread private List<DBNote> getNotesCustom(@NonNull String selection, @NonNull String[] selectionArgs, @Nullable String orderBy) { return this.getNotesCustom(selection, selectionArgs, orderBy, null); } @NonNull @WorkerThread private List<DBNote> getNotesCustom(@NonNull String selection, @NonNull String[] selectionArgs, @Nullable String orderBy, @Nullable String limit) { SQLiteDatabase db = getReadableDatabase(); if (selectionArgs.length > 2) { Log.v("Note", selection + " ---- " + selectionArgs[0] + " " + selectionArgs[1] + " " + selectionArgs[2]); } Cursor cursor = db.query(table_notes, columns, selection, selectionArgs, null, null, orderBy); Cursor cursor = db.query(table_notes, columns, selection, selectionArgs, null, null, orderBy, limit); List<DBNote> notes = new ArrayList<>(); while (cursor.moveToNext()) { notes.add(getNoteFromCursor(cursor)); Loading Loading @@ -301,6 +308,12 @@ public class NoteSQLiteOpenHelper extends SQLiteOpenHelper { return getNotesCustom(key_status + " != ?", new String[]{DBStatus.LOCAL_DELETED.getTitle()}, default_order); } @NonNull @WorkerThread public List<DBNote> getRecentNotes() { return getNotesCustom(key_status + " != ?", new String[]{DBStatus.LOCAL_DELETED.getTitle()}, key_modified + " DESC", "4"); } /** * Returns a list of all Notes in the Database * Loading
app/src/main/res/xml/shortcuts.xml +0 −36 Original line number Diff line number Diff line Loading @@ -12,40 +12,4 @@ android:targetClass="it.niedermann.owncloud.notes.android.activity.EditNoteActivity" /> <categories android:name="android.shortcut.conversation" /> </shortcut> <shortcut android:shortcutId="it.niedermann.owncloud.notes.recent" android:enabled="true" android:icon="@drawable/ic_access_time_grey600_24dp" android:shortcutShortLabel="@string/action_recent" > <intent android:action="it.niedermann.owncloud.notes.recent" android:targetPackage="it.niedermann.owncloud.notes" android:targetClass="it.niedermann.owncloud.notes.android.activity.NotesListViewActivity" /> <categories android:name="android.shortcut.conversation" /> </shortcut> <shortcut android:shortcutId="it.niedermann.owncloud.notes.favorite" android:enabled="true" android:icon="@drawable/ic_star_grey_ccc_24dp" android:shortcutShortLabel="@string/label_favorites" > <intent android:action="it.niedermann.owncloud.notes.favorites" android:targetPackage="it.niedermann.owncloud.notes" android:targetClass="it.niedermann.owncloud.notes.android.activity.NotesListViewActivity" /> <categories android:name="android.shortcut.conversation" /> </shortcut> <shortcut android:shortcutId="it.niedermann.owncloud.notes.settings" android:enabled="true" android:icon="@drawable/ic_settings_grey600_24dp" android:shortcutShortLabel="@string/action_settings" > <intent android:action="android.intent.action.VIEW" android:targetPackage="it.niedermann.owncloud.notes" android:targetClass="it.niedermann.owncloud.notes.android.activity.PreferencesActivity" /> <categories android:name="android.shortcut.conversation" /> </shortcut> </shortcuts> No newline at end of file
cert4android @ 4fac9b14 Compare 1c399797 to 4fac9b14 Original line number Diff line number Diff line Subproject commit 1c3997978c3cc278e26cd63735ba860b1a399bbd Subproject commit 4fac9b14bc4e35fd317bcb75ae5e7f39c22b3c75