diff options
-rw-r--r-- | app/src/androidTest/java/de/test/antennapod/ui/FeedSettingsTest.java | 79 | ||||
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/fragment/preferences/MainPreferencesFragment.java | 6 | ||||
-rw-r--r-- | app/src/main/res/layout/about.xml | 13 | ||||
-rw-r--r-- | app/src/main/res/xml/feed_settings.xml | 1 | ||||
-rw-r--r-- | app/src/main/res/xml/preferences.xml | 2 | ||||
-rw-r--r-- | core/src/main/res/drawable/ic_av_skip_black_24dp.xml | 7 | ||||
-rw-r--r-- | core/src/main/res/drawable/ic_av_skip_white_24dp.xml | 7 | ||||
-rw-r--r-- | core/src/main/res/values/attrs.xml | 1 | ||||
-rw-r--r-- | core/src/main/res/values/styles.xml | 2 | ||||
-rw-r--r-- | infrastructure.md | 65 |
10 files changed, 166 insertions, 17 deletions
diff --git a/app/src/androidTest/java/de/test/antennapod/ui/FeedSettingsTest.java b/app/src/androidTest/java/de/test/antennapod/ui/FeedSettingsTest.java new file mode 100644 index 000000000..b49be9a04 --- /dev/null +++ b/app/src/androidTest/java/de/test/antennapod/ui/FeedSettingsTest.java @@ -0,0 +1,79 @@ +package de.test.antennapod.ui; + +import android.content.Intent; +import androidx.test.espresso.intent.rule.IntentsTestRule; +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.runner.AndroidJUnit4; +import de.danoeh.antennapod.R; +import de.danoeh.antennapod.activity.MainActivity; +import de.danoeh.antennapod.core.feed.Feed; +import de.test.antennapod.EspressoTestUtils; +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +import static androidx.test.espresso.Espresso.onView; +import static androidx.test.espresso.action.ViewActions.click; +import static androidx.test.espresso.matcher.ViewMatchers.isDescendantOfA; +import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; +import static androidx.test.espresso.matcher.ViewMatchers.isRoot; +import static androidx.test.espresso.matcher.ViewMatchers.withId; +import static androidx.test.espresso.matcher.ViewMatchers.withText; +import static de.test.antennapod.EspressoTestUtils.clickPreference; +import static de.test.antennapod.EspressoTestUtils.waitForView; +import static org.hamcrest.Matchers.allOf; + +@RunWith(AndroidJUnit4.class) +public class FeedSettingsTest { + private UITestUtils uiTestUtils; + private Feed feed; + + @Rule + public IntentsTestRule<MainActivity> activityRule = new IntentsTestRule<>(MainActivity.class, false, false); + + @Before + public void setUp() throws Exception { + uiTestUtils = new UITestUtils(InstrumentationRegistry.getInstrumentation().getTargetContext()); + uiTestUtils.setup(); + + EspressoTestUtils.clearPreferences(); + EspressoTestUtils.clearDatabase(); + + uiTestUtils.addLocalFeedData(false); + feed = uiTestUtils.hostedFeeds.get(0); + Intent intent = new Intent(InstrumentationRegistry.getInstrumentation().getTargetContext(), MainActivity.class); + intent.putExtra(MainActivity.EXTRA_FEED_ID, feed.getId()); + activityRule.launchActivity(intent); + } + + @After + public void tearDown() throws Exception { + uiTestUtils.tearDown(); + } + + @Test + public void testClickFeedSettings() { + onView(isRoot()).perform(waitForView(allOf(isDescendantOfA(withId(R.id.appBar)), + withText(feed.getTitle()), isDisplayed()), 1000)); + onView(withId(R.id.butShowSettings)).perform(click()); + + clickPreference(R.string.keep_updated); + + clickPreference(R.string.authentication_label); + onView(withText(R.string.cancel_label)).perform(click()); + + clickPreference(R.string.playback_speed); + onView(withText(R.string.cancel_label)).perform(click()); + + clickPreference(R.string.pref_feed_skip); + onView(withText(R.string.cancel_label)).perform(click()); + + clickPreference(R.string.auto_delete_label); + onView(withText(R.string.cancel_label)).perform(click()); + + clickPreference(R.string.feed_volume_reduction); + onView(withText(R.string.cancel_label)).perform(click()); + } +} diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/MainPreferencesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/MainPreferencesFragment.java index d9dd7c47d..406585808 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/MainPreferencesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/MainPreferencesFragment.java @@ -20,7 +20,7 @@ public class MainPreferencesFragment extends PreferenceFragmentCompat { private static final String PREF_SCREEN_GPODDER = "prefScreenGpodder"; private static final String PREF_SCREEN_STORAGE = "prefScreenStorage"; private static final String PREF_FAQ = "prefFaq"; - private static final String PREF_VIEW_MAILING_LIST = "prefViewMailingList"; + private static final String PREF_VIEW_FORUM = "prefViewForum"; private static final String PREF_SEND_BUG_REPORT = "prefSendBugReport"; private static final String STATISTICS = "statistics"; private static final String PREF_ABOUT = "prefAbout"; @@ -78,8 +78,8 @@ public class MainPreferencesFragment extends PreferenceFragmentCompat { IntentUtils.openInBrowser(getContext(), "https://antennapod.org/faq.html"); return true; }); - findPreference(PREF_VIEW_MAILING_LIST).setOnPreferenceClickListener(preference -> { - IntentUtils.openInBrowser(getContext(), "https://groups.google.com/forum/#!forum/antennapod"); + findPreference(PREF_VIEW_FORUM).setOnPreferenceClickListener(preference -> { + IntentUtils.openInBrowser(getContext(), "https://forum.antennapod.org/"); return true; }); findPreference(PREF_SEND_BUG_REPORT).setOnPreferenceClickListener(preference -> { diff --git a/app/src/main/res/layout/about.xml b/app/src/main/res/layout/about.xml deleted file mode 100644 index 42f5e1245..000000000 --- a/app/src/main/res/layout/about.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/webViewContainer" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:orientation="vertical" > - - <WebView - android:id="@+id/webViewAbout" - android:layout_width="match_parent" - android:layout_height="match_parent" /> - -</LinearLayout>
\ No newline at end of file diff --git a/app/src/main/res/xml/feed_settings.xml b/app/src/main/res/xml/feed_settings.xml index f85c9ef3c..9f8392f44 100644 --- a/app/src/main/res/xml/feed_settings.xml +++ b/app/src/main/res/xml/feed_settings.xml @@ -23,6 +23,7 @@ <Preference android:key="feedAutoSkip" + android:icon="?attr/ic_settings_skip" android:summary="@string/pref_feed_skip_sum" android:title="@string/pref_feed_skip" /> diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 2141c811c..b69f27473 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -50,7 +50,7 @@ android:title="@string/pref_faq" android:icon="?attr/ic_questionmark" /> <Preference - android:key="prefViewMailingList" + android:key="prefViewForum" android:title="@string/visit_user_forum" android:icon="?attr/ic_chat" /> <Preference diff --git a/core/src/main/res/drawable/ic_av_skip_black_24dp.xml b/core/src/main/res/drawable/ic_av_skip_black_24dp.xml new file mode 100644 index 000000000..3ca3734a8 --- /dev/null +++ b/core/src/main/res/drawable/ic_av_skip_black_24dp.xml @@ -0,0 +1,7 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportHeight="24.0" + android:viewportWidth="24.0"> + <path android:fillColor="#FF000000" android:pathData="M6,18l8.5,-6L6,6v12zM16,6v12h2V6h-2z"/> +</vector> diff --git a/core/src/main/res/drawable/ic_av_skip_white_24dp.xml b/core/src/main/res/drawable/ic_av_skip_white_24dp.xml new file mode 100644 index 000000000..9df98de70 --- /dev/null +++ b/core/src/main/res/drawable/ic_av_skip_white_24dp.xml @@ -0,0 +1,7 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportHeight="24.0" + android:viewportWidth="24.0"> + <path android:fillColor="#FFFFFFFF" android:pathData="M6,18l8.5,-6L6,6v12zM16,6v12h2V6h-2z"/> +</vector> diff --git a/core/src/main/res/values/attrs.xml b/core/src/main/res/values/attrs.xml index 2d8cbb4cb..b89a819f1 100644 --- a/core/src/main/res/values/attrs.xml +++ b/core/src/main/res/values/attrs.xml @@ -52,6 +52,7 @@ <attr name="currently_playing_background" format="color"/> <attr name="ic_bookmark" format="reference"/> <attr name="ic_settings_speed" format="reference" /> + <attr name="ic_settings_skip" format="reference" /> <attr name="drawer_activated_color" format="color"/> <attr name="batch_edit_fab_icon" format="reference"/> <attr name="action_icon_color" format="color"/> diff --git a/core/src/main/res/values/styles.xml b/core/src/main/res/values/styles.xml index dc823a939..ab78eac47 100644 --- a/core/src/main/res/values/styles.xml +++ b/core/src/main/res/values/styles.xml @@ -35,6 +35,7 @@ <item name="av_fast_forward">@drawable/ic_av_fast_forward_black_48dp</item> <item name="av_skip">@drawable/ic_av_skip_black_48dp</item> <item name="ic_settings_speed">@drawable/ic_playback_speed_black</item> + <item name="ic_settings_skip">@drawable/ic_av_skip_black_24dp</item> <item name="ic_delete">@drawable/ic_delete_black</item> <item name="content_new">@drawable/ic_add_black</item> <item name="content_remove_from_queue">@drawable/ic_remove_black</item> @@ -109,6 +110,7 @@ <item name="av_play">@drawable/ic_av_play_white_48dp</item> <item name="av_skip">@drawable/ic_av_skip_white_48dp</item> <item name="ic_settings_speed">@drawable/ic_playback_speed_white</item> + <item name="ic_settings_skip">@drawable/ic_av_skip_white_24dp</item> <item name="ic_delete">@drawable/ic_delete_white</item> <item name="content_new">@drawable/ic_add_white</item> <item name="content_remove_from_queue">@drawable/ic_remove_white</item> diff --git a/infrastructure.md b/infrastructure.md new file mode 100644 index 000000000..87a8bacb7 --- /dev/null +++ b/infrastructure.md @@ -0,0 +1,65 @@ +# AntennaPod infrastructure + +This document describes what services and accounts are in use for AntennaPod. The goal is to make it clear who has which passwords and keys. + +## App distribution +- F-Droid + - Automatic updates from GitHub tags + - F-Droid's signing keys +- Google Play + - Developer account owned by @mfietz + - @ByteHamster has (nearly full) access + - Can not manage permissions + - Upload using Gradle Play Publisher + - API key: @ByteHamster + - AntennaPod signing keys + - @mfietz, @ByteHamster, @danieloeh +- Amazon App Store + - Outdated + - None of the current developers has access + +## Web +- Main website (https://antennapod.org) + - Hosted on GitHub Pages + - Source: https://github.com/AntennaPod/antennapod.github.io + - Maintainer: @Keunes +- Forum (https://forum.antennapod.org) + - Hosted by @ByteHamster (personal root server) + - Powered by [Discourse](https://github.com/discourse/discourse) + - Admin: @ByteHamster + - Moderators: @ByteHamster, @Keunes +- Domain/DNS (`antennapod.org`) + - Managed by @mfietz +- Google Groups + - https://groups.google.com/forum/#!forum/antennapod + - No longer used, replaced with forum (https://forum.antennapod.org) + - Owners: @mfietz, @danieloeh, @ByteHamster, @Keunes +- Wiki + - https://github.com/AntennaPod/AntennaPod/wiki + - Managed on GitHub + - Mostly unmaintained + +## Email +- `@antennapod.org` + - Managed by @ByteHamster (mailbox only for `info@`) + - Used for the required contact address on Google Play + - Auto responder tells users to write on forum or GitHub instead +- `@forum.antennapod.org` + - Managed by @ByteHamster (catch-all mailbox) + - Used by the forum, checked every 5 minutes + - Allows to post+reply via email + +## Social media +- Twitter + - https://twitter.com/antennapod + - Email address of @mfietz + - @ByteHamster and @mfietz have the password + +## Development +- Translations + - https://transifex.com/antennapod/antennapod + - Pulled manually before releasing + - Team managers @mfietz, @ByteHamster +- Source repo + - https://github.com/AntennaPod + - Organization owners: @ByteHamster, @danieloeh, @mfietz, @TomHennen |