Skip to content

Commit a24aefc

Browse files
authored
Merge pull request #599 from Aga-C/add-create-shortcut
Added create shortcut option (#598)
2 parents 54fb0fe + 36963da commit a24aefc

File tree

4 files changed

+43
-0
lines changed

4 files changed

+43
-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
@@ -213,6 +215,7 @@ class MainActivity : SimpleActivity() {
213215
R.id.new_note -> displayNewNoteDialog()
214216
R.id.rename_note -> fragment?.handleUnlocking { displayRenameDialog() }
215217
R.id.share -> fragment?.handleUnlocking { shareText() }
218+
R.id.cab_create_shortcut -> createShortcut()
216219
R.id.lock_note -> lockNote()
217220
R.id.unlock_note -> unlockNote()
218221
R.id.open_file -> tryOpenFile()
@@ -1339,6 +1342,30 @@ class MainActivity : SimpleActivity() {
13391342
}
13401343
}
13411344

1345+
@SuppressLint("NewApi")
1346+
private fun createShortcut() {
1347+
val manager = getSystemService(ShortcutManager::class.java)
1348+
if (manager.isRequestPinShortcutSupported) {
1349+
val note = mCurrentNote
1350+
val drawable = resources.getDrawable(R.drawable.shortcut_note).mutate()
1351+
val appIconColor = baseConfig.appIconColor
1352+
(drawable as LayerDrawable).findDrawableByLayerId(R.id.shortcut_plus_background).applyColorFilter(appIconColor)
1353+
1354+
val intent = Intent(this, SplashActivity::class.java)
1355+
intent.action = Intent.ACTION_VIEW
1356+
intent.putExtra(OPEN_NOTE_ID, note.id)
1357+
intent.flags = intent.flags or Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NO_HISTORY
1358+
1359+
val shortcut = ShortcutInfo.Builder(this, note.hashCode().toString())
1360+
.setShortLabel(mCurrentNote.title)
1361+
.setIcon(Icon.createWithBitmap(drawable.convertToBitmap()))
1362+
.setIntent(intent)
1363+
.build()
1364+
1365+
manager.requestPinShortcut(shortcut, null)
1366+
}
1367+
}
1368+
13421369
private fun lockNote() {
13431370
ConfirmationDialog(this, "", R.string.locking_warning, R.string.ok, R.string.cancel) {
13441371
SecurityDialog(this, "", SHOW_ALL_TABS) { hash, type, success ->
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="108dp" android:height="108dp" android:viewportWidth="108" android:viewportHeight="108">
2+
<path android:pathData="M83.383 37.813l-19.6-19.442H24.618v71.26H83.225V37.813zm-2.87 0h-16.73v-16.572zm-45.658-2.87v-1.96h26.967v3.92H34.855zm17.185 43.242h-17.168v-3.92h17.168zm21.088-12.355v1.96H34.855v-3.92h38.273zm0-10.237v1.96H34.855v-3.92h38.273zm0-10.255v1.96H34.855v-3.92h38.273z" android:fillColor="#FFFFFFFF"/>
3+
</vector>
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_shortcut_icon" 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)