summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/src/androidTest/java/de/test/antennapod/ui/FeedSettingsTest.java79
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/preferences/MainPreferencesFragment.java6
-rw-r--r--app/src/main/res/layout/about.xml13
-rw-r--r--app/src/main/res/xml/feed_settings.xml1
-rw-r--r--app/src/main/res/xml/preferences.xml2
-rw-r--r--core/src/main/res/drawable/ic_av_skip_black_24dp.xml7
-rw-r--r--core/src/main/res/drawable/ic_av_skip_white_24dp.xml7
-rw-r--r--core/src/main/res/values/attrs.xml1
-rw-r--r--core/src/main/res/values/styles.xml2
-rw-r--r--infrastructure.md65
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