From e145a5e66de671bc9f66cb11f28ba2b0d86032c0 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Tue, 19 Jun 2018 12:32:55 +0200 Subject: [PATCH] android: Use modern shortcuts on Android 8+ --- .../android/app/src/main/AndroidManifest.xml | 3 ++- .../android/ui/VpnProfileSelectActivity.java | 15 ++++++++------ .../res/mipmap-anydpi-v26/ic_shortcut.xml | 19 ++++++++++++++++++ .../main/res/mipmap-anydpi/ic_shortcut.xml | 17 ++++++++++++++++ .../res/mipmap-xxxhdpi-v26/ic_shortcut_bg.png | Bin 0 -> 3185 bytes .../res/mipmap-xxxhdpi-v26/ic_shortcut_fg.png | Bin 0 -> 17725 bytes 6 files changed, 47 insertions(+), 7 deletions(-) create mode 100644 src/frontends/android/app/src/main/res/mipmap-anydpi-v26/ic_shortcut.xml create mode 100644 src/frontends/android/app/src/main/res/mipmap-anydpi/ic_shortcut.xml create mode 100644 src/frontends/android/app/src/main/res/mipmap-xxxhdpi-v26/ic_shortcut_bg.png create mode 100644 src/frontends/android/app/src/main/res/mipmap-xxxhdpi-v26/ic_shortcut_fg.png diff --git a/src/frontends/android/app/src/main/AndroidManifest.xml b/src/frontends/android/app/src/main/AndroidManifest.xml index ab3725b56e..2a75d05aba 100644 --- a/src/frontends/android/app/src/main/AndroidManifest.xml +++ b/src/frontends/android/app/src/main/AndroidManifest.xml @@ -80,7 +80,8 @@ + android:label="@string/strongswan_shortcut" + android:icon="@mipmap/ic_shortcut" > diff --git a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileSelectActivity.java b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileSelectActivity.java index 27cecc7e99..fe3d01322a 100644 --- a/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileSelectActivity.java +++ b/src/frontends/android/app/src/main/java/org/strongswan/android/ui/VpnProfileSelectActivity.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 Tobias Brunner + * Copyright (C) 2012-2018 Tobias Brunner * HSR Hochschule fuer Technik Rapperswil * * This program is free software; you can redistribute it and/or modify it @@ -17,6 +17,9 @@ package org.strongswan.android.ui; import android.content.Intent; import android.os.Bundle; +import android.support.v4.content.pm.ShortcutInfoCompat; +import android.support.v4.content.pm.ShortcutManagerCompat; +import android.support.v4.graphics.drawable.IconCompat; import android.support.v7.app.AppCompatActivity; import org.strongswan.android.R; @@ -42,11 +45,11 @@ public class VpnProfileSelectActivity extends AppCompatActivity implements OnVpn Intent shortcut = new Intent(VpnProfileControlActivity.START_PROFILE); shortcut.putExtra(VpnProfileControlActivity.EXTRA_VPN_PROFILE_ID, profile.getUUID().toString()); - Intent intent = new Intent(); - intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcut); - intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, profile.getName()); - intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_launcher)); - setResult(RESULT_OK, intent); + ShortcutInfoCompat.Builder builder = new ShortcutInfoCompat.Builder(this, profile.getUUID().toString()); + builder.setIntent(shortcut); + builder.setShortLabel(profile.getName()); + builder.setIcon(IconCompat.createWithResource(this, R.mipmap.ic_shortcut)); + setResult(RESULT_OK, ShortcutManagerCompat.createShortcutResultIntent(this, builder.build())); finish(); } } diff --git a/src/frontends/android/app/src/main/res/mipmap-anydpi-v26/ic_shortcut.xml b/src/frontends/android/app/src/main/res/mipmap-anydpi-v26/ic_shortcut.xml new file mode 100644 index 0000000000..6aea2ffbfb --- /dev/null +++ b/src/frontends/android/app/src/main/res/mipmap-anydpi-v26/ic_shortcut.xml @@ -0,0 +1,19 @@ + + + + + + diff --git a/src/frontends/android/app/src/main/res/mipmap-anydpi/ic_shortcut.xml b/src/frontends/android/app/src/main/res/mipmap-anydpi/ic_shortcut.xml new file mode 100644 index 0000000000..653d080060 --- /dev/null +++ b/src/frontends/android/app/src/main/res/mipmap-anydpi/ic_shortcut.xml @@ -0,0 +1,17 @@ + + + \ No newline at end of file diff --git a/src/frontends/android/app/src/main/res/mipmap-xxxhdpi-v26/ic_shortcut_bg.png b/src/frontends/android/app/src/main/res/mipmap-xxxhdpi-v26/ic_shortcut_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..76532253cfa353c39e9afea44bc7835763513540 GIT binary patch literal 3185 zc-nnedu&r>6t6KFV8Q^E^5$BCB5-?e+w}>Rlyx0b#$yahP*QJu??x%@t?eBha~6Y4 zp%rH$hRH;te;Bh0Bhf(uvXb!huMdPR^;T6b zuLUrgDHV}(5qwtF15&FhmlCCXh$HlB1L@I}XbGcPtufGMZOI%$OKXf2ZKO0hlGa#g zgGFa120kjN7Gi5GRd&ZfEjU?KYXu=_p{PhCqK@d)e5jVvn9XL2)>2w62_9s4V?bc) z$v}9zn8D74Jt1#U@bUoy&y1U|6Rawg*n&S;St%tBga-x%Bctk>Af-{$l;2N@-eIAN zt9iV4xO!udqpG+tUl;O#9yQY+DfReJbObh*B_S_}!mPLRo;p7l5Gw3e6?~&+y{yH+ zxmg`;G>{ryiH_9jO3b90)|*I=PNUNq^d7g{V-)iY7H`&QY!152VQ|7Pf{hp}878Sz}~r(#VvUNQQBnNxjzW*1B1PmNRKo z6i}q{R!KC$ej=1E1{|cT#RcF#h2Y|lBdRwj6vN)Du-mHZFW9(6srX;lA( ze~s z(8Nr7$EG#Iv%bs87mxMty4PNNRe8-fKBN5AH#(#IEm52;x^ta#S1Zx#|r;LzAi`uk1RDaoa-XPIc_ z{WP7Tj;4te)#aR)QU0DN%Es?p>gwOzxcdZk(K$R@l&u>FzO~St1oUGv>AyBvpNHdn zbaI&Mofg;Dc6Ew6=`6|?-Cc34|EtE`I0JA0f_LP=-s1Y@zW$kP(d`}p2;@_3muG_%Nx^;+#>*m9>SGTx6Zl9P@{+Vm|&@_nb zh4!yUF>(x?j?qcQ&^(U=s|uti1JY2^M_^{xy87LX9dwd#=~L8C4~9ZP>6_MHNU9&Br>$WgBG6wH8&Bm;Rx|3*o0 zpJX6!f^P$<4kc8PfxH`xDqr3Xt;v9#eR?slxPf$JKt3|xTwrkk>Bzt!_hk+0@570a zIFJ(s-Q`BQ7x~1%Qv&iWIsn4>Wg9j~fLxLeymFIpJR-=AXLa+V z>zzBHWDk?C|Zo*$IVBPbm07e8D7an*p&qO ai$`9z{W_!0b_st3RFo~Y?_2QZ=KlfhUGnt+ literal 0 Hc-jL100001 diff --git a/src/frontends/android/app/src/main/res/mipmap-xxxhdpi-v26/ic_shortcut_fg.png b/src/frontends/android/app/src/main/res/mipmap-xxxhdpi-v26/ic_shortcut_fg.png new file mode 100644 index 0000000000000000000000000000000000000000..6e62e6d698888ab1ad6ff75340fad31860696d52 GIT binary patch literal 17725 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 literal 0 Hc-jL100001 -- 2.39.2