Skip to content

Commit 7d95415

Browse files
committed
Added create shortcut option (#598)
1 parent fe1ed9e commit 7d95415

File tree

3 files changed

+40
-0
lines changed

3 files changed

+40
-0
lines changed

app/src/main/kotlin/com/simplemobiletools/notes/pro/activities/MainActivity.kt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import android.content.ActivityNotFoundException
66
import android.content.Context
77
import android.content.Intent
88
import android.content.pm.ShortcutInfo
9+
import android.content.pm.ShortcutManager
910
import android.graphics.drawable.Icon
1011
import android.graphics.drawable.LayerDrawable
1112
import android.net.Uri
@@ -43,6 +44,7 @@ import com.simplemobiletools.notes.pro.fragments.TextFragment
4344
import com.simplemobiletools.notes.pro.helpers.*
4445
import com.simplemobiletools.notes.pro.models.Note
4546
import kotlinx.android.synthetic.main.activity_main.*
47+
import kotlinx.android.synthetic.main.item_checklist.*
4648
import java.io.File
4749
import java.io.FileOutputStream
4850
import java.io.OutputStream
@@ -214,6 +216,7 @@ class MainActivity : SimpleActivity() {
214216
R.id.new_note -> displayNewNoteDialog()
215217
R.id.rename_note -> fragment?.handleUnlocking { displayRenameDialog() }
216218
R.id.share -> fragment?.handleUnlocking { shareText() }
219+
R.id.cab_create_shortcut -> createShortcut()
217220
R.id.lock_note -> lockNote()
218221
R.id.unlock_note -> unlockNote()
219222
R.id.open_file -> tryOpenFile()
@@ -1320,6 +1323,30 @@ class MainActivity : SimpleActivity() {
13201323
}
13211324
}
13221325

1326+
@SuppressLint("NewApi")
1327+
private fun createShortcut() {
1328+
val manager = getSystemService(ShortcutManager::class.java)
1329+
if (manager.isRequestPinShortcutSupported) {
1330+
val note = mCurrentNote
1331+
val drawable = resources.getDrawable(R.drawable.shortcut_note).mutate()
1332+
val appIconColor = baseConfig.appIconColor
1333+
(drawable as LayerDrawable).findDrawableByLayerId(R.id.shortcut_plus_background).applyColorFilter(appIconColor)
1334+
1335+
val intent = Intent(this, SplashActivity::class.java)
1336+
intent.action = Intent.ACTION_VIEW
1337+
intent.putExtra(OPEN_NOTE_ID, note.id)
1338+
intent.flags = intent.flags or Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NO_HISTORY
1339+
1340+
val shortcut = ShortcutInfo.Builder(this, note.hashCode().toString())
1341+
.setShortLabel(mCurrentNote.title)
1342+
.setIcon(Icon.createWithBitmap(drawable.convertToBitmap()))
1343+
.setIntent(intent)
1344+
.build()
1345+
1346+
manager.requestPinShortcut(shortcut, null)
1347+
}
1348+
}
1349+
13231350
private fun lockNote() {
13241351
ConfirmationDialog(this, "", R.string.locking_warning, R.string.ok, R.string.cancel) {
13251352
SecurityDialog(this, "", SHOW_ALL_TABS) { hash, type, success ->
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
3+
<item android:id="@+id/shortcut_plus_background">
4+
<shape android:shape="oval">
5+
<solid android:color="@color/color_primary"/>
6+
</shape>
7+
</item>
8+
<item android:bottom="@dimen/medium_margin" android:drawable="@drawable/ic_article_vector" android:left="@dimen/medium_margin" android:right="@dimen/medium_margin" android:top="@dimen/medium_margin" />
9+
</layer-list>

app/src/main/res/menu/menu.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@
5050
android:icon="@drawable/ic_share_vector"
5151
android:title="@string/share"
5252
app:showAsAction="ifRoom" />
53+
<item
54+
android:id="@+id/cab_create_shortcut"
55+
android:title="@string/create_shortcut"
56+
app:showAsAction="never" />
5357
<item
5458
android:id="@+id/lock_note"
5559
android:title="@string/lock_note"

0 commit comments

Comments
 (0)