From d888e5e2f25ca1308a5a34a17b5c585edeb30881 Mon Sep 17 00:00:00 2001 From: Hussein Mohammed Date: Thu, 2 Mar 2017 09:14:58 +0000 Subject: [PATCH] Added app shortcuts (#278) * Added app shortcuts Signed-off-by: Hussein Mohammed * Added sdk25 to travis --- .travis.yml | 2 ++ app/build.gradle | 6 +++--- .../com/zeapo/pwdstore/PasswordStore.java | 19 +++++++++++++++++++ build.gradle | 4 ++-- 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4c5d72b2..6c72f1dc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,8 +6,10 @@ android: - tools - build-tools-23.0.3 - build-tools-24.0.2 + - build-tools-25.0.2 - android-23 - android-24 + - android-25 - extra-google-m2repository - extra-android-m2repository diff --git a/app/build.gradle b/app/build.gradle index 2b713560..8205e16f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,12 +3,12 @@ apply from: 'copyLibs.gradle' // enable 'copyLibs.gradle' script plugin apply plugin: 'eclipse' android { - compileSdkVersion 24 - buildToolsVersion '24.0.2' + compileSdkVersion 25 + buildToolsVersion '25.0.2' defaultConfig { applicationId "com.zeapo.pwdstore" minSdkVersion 15 - targetSdkVersion 24 + targetSdkVersion 25 versionCode 77 versionName "1.2.0.57" } diff --git a/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java b/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java index 4d3b84e5..c0253b85 100644 --- a/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java +++ b/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java @@ -6,7 +6,11 @@ import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; +import android.content.pm.ShortcutInfo; +import android.content.pm.ShortcutManager; import android.graphics.Color; +import android.graphics.drawable.Icon; +import android.os.Build; import android.os.Bundle; import android.preference.PreferenceManager; import android.support.design.widget.Snackbar; @@ -40,6 +44,7 @@ import org.eclipse.jgit.lib.Repository; import java.io.File; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashSet; import java.util.Iterator; import java.util.Set; @@ -51,6 +56,7 @@ public class PasswordStore extends AppCompatActivity { private Activity activity; private PasswordFragment plist; private AlertDialog selectDestinationDialog; + private ShortcutManager shortcutManager; private final static int CLONE_REPO_BUTTON = 401; private final static int NEW_REPO_BUTTON = 402; @@ -61,6 +67,8 @@ public class PasswordStore extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { settings = PreferenceManager.getDefaultSharedPreferences(this.getApplicationContext()); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) + shortcutManager = getSystemService(ShortcutManager.class); activity = this; PRNGFixes.apply(); @@ -392,6 +400,17 @@ public class PasswordStore extends AppCompatActivity { intent.putExtra("NAME", item.toString()); intent.putExtra("FILE_PATH", item.getFile().getAbsolutePath()); intent.putExtra("Operation", "DECRYPT"); + + // Adds shortcut + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) { + ShortcutInfo shortcut = new ShortcutInfo.Builder(this, item.getFullPathName()) + .setShortLabel(item.toString()) + .setLongLabel(item.getFullPathName() + item.toString()) + .setIcon(Icon.createWithResource(this, R.drawable.ic_launcher)) + .setIntent(intent.setAction("DECRYPT_PASS")) // Needs action + .build(); + shortcutManager.addDynamicShortcuts(Arrays.asList(shortcut)); + } startActivityForResult(intent, PgpHandler.REQUEST_CODE_DECRYPT_AND_VERIFY); } diff --git a/build.gradle b/build.gradle index f9996e6d..a2122714 100644 --- a/build.gradle +++ b/build.gradle @@ -21,8 +21,8 @@ allprojects { } ext { - compileSdkVersion = 23 - buildToolsVersion = "23.0.3" + compileSdkVersion = 25 + buildToolsVersion = "25.0.2" } subprojects { subproject -> afterEvaluate{