diff options
-rw-r--r-- | app/build.gradle | 4 | ||||
-rw-r--r-- | app/src/main/AndroidManifest.xml | 4 | ||||
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java | 9 | ||||
-rw-r--r-- | app/src/main/res/xml/shortcuts.xml | 62 | ||||
-rw-r--r-- | build.gradle | 2 | ||||
-rw-r--r-- | core/src/main/res/drawable-anydpi-v26/ic_feed_shortcut.xml | 9 | ||||
-rw-r--r-- | core/src/main/res/drawable-anydpi-v26/ic_folder_shortcut.xml | 9 | ||||
-rw-r--r-- | core/src/main/res/drawable-anydpi-v26/ic_playlist_shortcut.xml | 9 | ||||
-rw-r--r-- | core/src/main/res/drawable-anydpi-v26/ic_refresh_shortcut.xml | 9 | ||||
-rw-r--r-- | core/src/main/res/drawable/ic_feed_shortcut.xml | 7 | ||||
-rw-r--r-- | core/src/main/res/drawable/ic_folder_shortcut.xml | 7 | ||||
-rw-r--r-- | core/src/main/res/drawable/ic_playlist_shortcut.xml | 7 | ||||
-rw-r--r-- | core/src/main/res/drawable/ic_refresh_shortcut.xml | 7 | ||||
-rw-r--r-- | core/src/main/res/drawable/ic_shortcut_background.xml | 11 | ||||
-rw-r--r-- | core/src/main/res/values/colors.xml | 1 |
15 files changed, 156 insertions, 1 deletions
diff --git a/app/build.gradle b/app/build.gradle index 34a2421b9..c281df885 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -198,3 +198,7 @@ task copyLicense(type: Copy) { preBuild.dependsOn copyLicense +apply plugin: 'de.timfreiheit.resourceplaceholders.plugin' +resourcePlaceholders { + files = ['xml/shortcuts.xml'] +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3f0df81f1..31b832b26 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -64,6 +64,10 @@ <category android:name= "android.intent.category.DEFAULT" /> </intent-filter> + + <meta-data + android:name="android.app.shortcuts" + android:resource="@xml/shortcuts" /> </activity> <activity diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java index a2d968031..7983db393 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java @@ -30,6 +30,7 @@ import de.danoeh.antennapod.R; import de.danoeh.antennapod.core.event.MessageEvent; import de.danoeh.antennapod.core.preferences.UserPreferences; import de.danoeh.antennapod.core.util.StorageUtils; +import de.danoeh.antennapod.core.util.download.AutoUpdateManager; import de.danoeh.antennapod.dialog.RatingDialog; import de.danoeh.antennapod.fragment.AddFeedFragment; import de.danoeh.antennapod.fragment.AudioPlayerFragment; @@ -64,6 +65,7 @@ public class MainActivity extends CastEnabledActivity { public static final String EXTRA_FRAGMENT_ARGS = "fragment_args"; public static final String EXTRA_FEED_ID = "fragment_feed_id"; public static final String EXTRA_OPEN_PLAYER = "open_player"; + public static final String EXTRA_REFRESH_ON_START = "refresh_on_start"; private static final String SAVE_BACKSTACK_COUNT = "backstackCount"; @@ -407,10 +409,15 @@ public class MainActivity extends CastEnabledActivity { private void handleNavIntent() { Intent intent = getIntent(); - if (intent.hasExtra(EXTRA_FEED_ID) || intent.hasExtra(EXTRA_FRAGMENT_TAG)) { + if (intent.hasExtra(EXTRA_FEED_ID) || intent.hasExtra(EXTRA_FRAGMENT_TAG) || intent.hasExtra(EXTRA_REFRESH_ON_START)) { Log.d(TAG, "handleNavIntent()"); String tag = intent.getStringExtra(EXTRA_FRAGMENT_TAG); Bundle args = intent.getBundleExtra(EXTRA_FRAGMENT_ARGS); + boolean refreshOnStart = intent.getBooleanExtra(EXTRA_REFRESH_ON_START, false); + if (refreshOnStart) { + AutoUpdateManager.runImmediate(this); + } + long feedId = intent.getLongExtra(EXTRA_FEED_ID, 0); if (tag != null) { loadFragment(tag, args); diff --git a/app/src/main/res/xml/shortcuts.xml b/app/src/main/res/xml/shortcuts.xml new file mode 100644 index 000000000..03042f224 --- /dev/null +++ b/app/src/main/res/xml/shortcuts.xml @@ -0,0 +1,62 @@ +<?xml version="1.0" encoding="utf-8"?> +<shortcuts xmlns:android="http://schemas.android.com/apk/res/android"> + <shortcut + android:enabled="true" + android:icon="@drawable/ic_playlist_shortcut" + android:shortcutId="queue" + android:shortcutShortLabel="@string/queue_label"> + <intent + android:action="android.intent.action.VIEW" + android:targetClass="de.danoeh.antennapod.activity.MainActivity" + android:targetPackage="${applicationId}"> + <extra + android:name="fragment_tag" + android:value="QueueFragment" /> + </intent> + </shortcut> + + <shortcut + android:enabled="true" + android:icon="@drawable/ic_feed_shortcut" + android:shortcutId="episodes" + android:shortcutShortLabel="@string/episodes_label"> + <intent + android:action="android.intent.action.VIEW" + android:targetClass="de.danoeh.antennapod.activity.MainActivity" + android:targetPackage="${applicationId}"> + <extra + android:name="fragment_tag" + android:value="EpisodesFragment" /> + </intent> + </shortcut> + + <shortcut + android:enabled="true" + android:icon="@drawable/ic_folder_shortcut" + android:shortcutId="subscriptions" + android:shortcutShortLabel="@string/subscriptions_label"> + <intent + android:action="android.intent.action.VIEW" + android:targetClass="de.danoeh.antennapod.activity.MainActivity" + android:targetPackage="${applicationId}"> + <extra + android:name="fragment_tag" + android:value="SubscriptionFragment" /> + </intent> + </shortcut> + + <shortcut + android:enabled="true" + android:icon="@drawable/ic_refresh_shortcut" + android:shortcutId="refresh" + android:shortcutShortLabel="@string/refresh_label"> + <intent + android:action="android.intent.action.VIEW" + android:targetClass="de.danoeh.antennapod.activity.MainActivity" + android:targetPackage="${applicationId}"> + <extra + android:name="refresh_on_start" + android:value="true" /> + </intent> + </shortcut> +</shortcuts> diff --git a/build.gradle b/build.gradle index 88273960d..724f54d62 100644 --- a/build.gradle +++ b/build.gradle @@ -3,10 +3,12 @@ buildscript { google() jcenter() mavenCentral() + maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath 'com.android.tools.build:gradle:3.5.0' classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.5' + classpath 'de.timfreiheit.resourceplaceholders:placeholders:0.3' } } diff --git a/core/src/main/res/drawable-anydpi-v26/ic_feed_shortcut.xml b/core/src/main/res/drawable-anydpi-v26/ic_feed_shortcut.xml new file mode 100644 index 000000000..ae080d335 --- /dev/null +++ b/core/src/main/res/drawable-anydpi-v26/ic_feed_shortcut.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> + <background android:drawable="@color/grey100" /> + <foreground> + <inset + android:drawable="@drawable/ic_feed_black" + android:inset="33.3%" /> + </foreground> +</adaptive-icon>
\ No newline at end of file diff --git a/core/src/main/res/drawable-anydpi-v26/ic_folder_shortcut.xml b/core/src/main/res/drawable-anydpi-v26/ic_folder_shortcut.xml new file mode 100644 index 000000000..0ee30ab73 --- /dev/null +++ b/core/src/main/res/drawable-anydpi-v26/ic_folder_shortcut.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> + <background android:drawable="@color/grey100" /> + <foreground> + <inset + android:drawable="@drawable/ic_folder_black" + android:inset="33.3%" /> + </foreground> +</adaptive-icon>
\ No newline at end of file diff --git a/core/src/main/res/drawable-anydpi-v26/ic_playlist_shortcut.xml b/core/src/main/res/drawable-anydpi-v26/ic_playlist_shortcut.xml new file mode 100644 index 000000000..60f95db32 --- /dev/null +++ b/core/src/main/res/drawable-anydpi-v26/ic_playlist_shortcut.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> + <background android:drawable="@color/grey100" /> + <foreground> + <inset + android:drawable="@drawable/ic_playlist_black" + android:inset="33.3%" /> + </foreground> +</adaptive-icon>
\ No newline at end of file diff --git a/core/src/main/res/drawable-anydpi-v26/ic_refresh_shortcut.xml b/core/src/main/res/drawable-anydpi-v26/ic_refresh_shortcut.xml new file mode 100644 index 000000000..1a7752443 --- /dev/null +++ b/core/src/main/res/drawable-anydpi-v26/ic_refresh_shortcut.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> + <background android:drawable="@color/grey100" /> + <foreground> + <inset + android:drawable="@drawable/ic_refresh_black" + android:inset="33.3%" /> + </foreground> +</adaptive-icon>
\ No newline at end of file diff --git a/core/src/main/res/drawable/ic_feed_shortcut.xml b/core/src/main/res/drawable/ic_feed_shortcut.xml new file mode 100644 index 000000000..fa5a0267c --- /dev/null +++ b/core/src/main/res/drawable/ic_feed_shortcut.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:drawable="@drawable/ic_shortcut_background" /> + <item + android:drawable="@drawable/ic_feed_black" + android:gravity="center" /> +</layer-list>
\ No newline at end of file diff --git a/core/src/main/res/drawable/ic_folder_shortcut.xml b/core/src/main/res/drawable/ic_folder_shortcut.xml new file mode 100644 index 000000000..2906c2795 --- /dev/null +++ b/core/src/main/res/drawable/ic_folder_shortcut.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:drawable="@drawable/ic_shortcut_background" /> + <item + android:drawable="@drawable/ic_folder_black" + android:gravity="center" /> +</layer-list>
\ No newline at end of file diff --git a/core/src/main/res/drawable/ic_playlist_shortcut.xml b/core/src/main/res/drawable/ic_playlist_shortcut.xml new file mode 100644 index 000000000..d2b5815d9 --- /dev/null +++ b/core/src/main/res/drawable/ic_playlist_shortcut.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:drawable="@drawable/ic_shortcut_background" /> + <item + android:drawable="@drawable/ic_playlist_black" + android:gravity="center" /> +</layer-list> diff --git a/core/src/main/res/drawable/ic_refresh_shortcut.xml b/core/src/main/res/drawable/ic_refresh_shortcut.xml new file mode 100644 index 000000000..2f1b37337 --- /dev/null +++ b/core/src/main/res/drawable/ic_refresh_shortcut.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:drawable="@drawable/ic_shortcut_background" /> + <item + android:drawable="@drawable/ic_refresh_black" + android:gravity="center" /> +</layer-list>
\ No newline at end of file diff --git a/core/src/main/res/drawable/ic_shortcut_background.xml b/core/src/main/res/drawable/ic_shortcut_background.xml new file mode 100644 index 000000000..9327150d0 --- /dev/null +++ b/core/src/main/res/drawable/ic_shortcut_background.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<inset xmlns:android="http://schemas.android.com/apk/res/android" + android:inset="2dp"> + + <shape android:shape="oval"> + <solid android:color="@color/grey100" /> + <size + android:width="44dp" + android:height="44dp" /> + </shape> +</inset> diff --git a/core/src/main/res/values/colors.xml b/core/src/main/res/values/colors.xml index efbc75f34..d3813235f 100644 --- a/core/src/main/res/values/colors.xml +++ b/core/src/main/res/values/colors.xml @@ -2,6 +2,7 @@ <resources> <color name="white">#FFFFFF</color> + <color name="grey100">#f5f5f5</color> <color name="grey600">#757575</color> <color name="light_gray">#bfbfbf</color> <color name="black">#000000</color> |