Merge branch 'master' into develop

This commit is contained in:
ByteHamster 2020-11-06 23:17:33 +01:00
commit 8d2df1afa1
12 changed files with 43 additions and 21 deletions

View File

@ -22,8 +22,8 @@ android {
// "1.2.3-SNAPSHOT" -> 1020300
// "1.2.3-RC4" -> 1020304
// "1.2.3" -> 1020395
versionCode 2000395
versionName "2.0.3"
versionCode 2010002
versionName "2.1.0-RC2"
multiDexEnabled false
vectorDrawables.useSupportLibrary true

View File

@ -16,6 +16,7 @@ import android.view.KeyEvent;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.Toast;
import androidx.annotation.NonNull;
@ -542,6 +543,11 @@ public class MainActivity extends CastEnabledActivity {
//Hardware keyboard support
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
View currentFocus = getCurrentFocus();
if (currentFocus instanceof EditText) {
return super.onKeyUp(keyCode, event);
}
AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
Integer customKeyCode = null;

View File

@ -12,6 +12,7 @@ import android.view.KeyEvent;
import android.view.animation.AlphaAnimation;
import android.view.animation.AnimationSet;
import android.view.animation.ScaleAnimation;
import android.widget.EditText;
import android.widget.ImageView;
import androidx.appcompat.view.menu.ActionMenuItem;
@ -489,6 +490,11 @@ public class VideoplayerActivity extends MediaplayerActivity {
//Hardware keyboard support
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
View currentFocus = getCurrentFocus();
if (currentFocus instanceof EditText) {
return super.onKeyUp(keyCode, event);
}
AudioManager audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
switch (keyCode) {

View File

@ -88,7 +88,9 @@ public class AddFeedFragment extends Fragment {
intentGetContentAction.setType("*/*");
startActivityForResult(intentGetContentAction, REQUEST_CODE_CHOOSE_OPML_IMPORT_PATH);
} catch (ActivityNotFoundException e) {
Log.e(TAG, "No activity found. Should never happen...");
e.printStackTrace();
((MainActivity) getActivity())
.showSnackbarAbovePlayer(R.string.unable_to_start_system_file_manager, Snackbar.LENGTH_LONG);
}
});
root.findViewById(R.id.btn_add_local_folder).setOnClickListener(v -> {
@ -100,7 +102,9 @@ public class AddFeedFragment extends Fragment {
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivityForResult(intent, REQUEST_CODE_ADD_LOCAL_FOLDER);
} catch (ActivityNotFoundException e) {
Log.e(TAG, "No activity found. Should never happen...");
e.printStackTrace();
((MainActivity) getActivity())
.showSnackbarAbovePlayer(R.string.unable_to_start_system_file_manager, Snackbar.LENGTH_LONG);
}
});
if (Build.VERSION.SDK_INT < 21) {

View File

@ -176,7 +176,7 @@ public class DownloadLogFragment extends ListFragment {
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if (!super.onOptionsItemSelected(item)) {
switch (item.getItemId()) {
case R.id.clear_history_item:
case R.id.clear_logs_item:
DBWriter.clearDownloadLog();
return true;
case R.id.refresh_item:

View File

@ -90,7 +90,6 @@ public class OnlineSearchFragment extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View root = inflater.inflate(R.layout.fragment_itunes_search, container, false);
setupToolbar(root.findViewById(R.id.toolbar));
root.findViewById(R.id.spinner_country).setVisibility(INVISIBLE);
gridView = root.findViewById(R.id.gridView);
adapter = new ItunesAdapter(getActivity(), new ArrayList<>());
@ -110,6 +109,7 @@ public class OnlineSearchFragment extends Fragment {
txtvEmpty = root.findViewById(android.R.id.empty);
TextView txtvPoweredBy = root.findViewById(R.id.search_powered_by);
txtvPoweredBy.setText(getString(R.string.search_powered_by, searchProvider.getName()));
setupToolbar(root.findViewById(R.id.toolbar));
return root;
}

View File

@ -1,7 +1,9 @@
We are proud to release version 2.0 with a new logo and refreshed user interface.
Thank you to 6420 users who participated in the vote for the new logo!
This is a beta release for AntennaPod 2.1.0
- Support for chapter images (only new episodes, by @ByteHamster)
- Skip intro and ending per feed (by @tonytamsf)
- Option to show notifications after episodes have been auto-downloaded (by @shortspider)
- Bug fixes and improvements (by @ebraminio, @tonytamsf, @JessieVela, @ByteHamster and more)
- A long-standing wish of many: playing local files! In the 'Add podcast' screen simply tap 'Add local folder' and select a location on your phone! (@ByteHamster, @igoralmeida & @damoasda)
- Pick a country for the 'Discover' screen (@tonytamsf)
- Keyboard shortcuts (@asdoi)
- Search the PodcastIndex.org database (@edwinhere)
- Pull to refresh (@asdoi)
- Playback speed & filter dialogs (@ByteHamster & @bws9000)
- Smooth sleep timer volume (@olivoto)

View File

@ -114,7 +114,7 @@
android:title="@string/pref_skip_keeps_episodes_title"/>
</PreferenceCategory>
<PreferenceCategory android:title="@string/media_player">
<PreferenceCategory android:title="@string/experimental_pref">
<ListPreference
android:defaultValue="exoplayer"
android:entries="@array/media_player_options"
@ -122,9 +122,6 @@
android:title="@string/media_player"
android:summary="@string/pref_media_player_message"
android:entryValues="@array/media_player_values"/>
</PreferenceCategory>
<PreferenceCategory android:title="@string/experimental_pref">
<SwitchPreferenceCompat
android:defaultValue="false"
android:enabled="true"

View File

@ -1,5 +1,6 @@
package de.danoeh.antennapod.core.feed.util;
import android.util.Log;
import de.danoeh.antennapod.core.feed.Feed;
import de.danoeh.antennapod.core.feed.FeedItem;
import de.danoeh.antennapod.core.feed.FeedMedia;
@ -14,6 +15,7 @@ import static de.danoeh.antennapod.core.feed.FeedPreferences.SPEED_USE_GLOBAL;
* Utility class to use the appropriate playback speed based on {@link PlaybackPreferences}
*/
public final class PlaybackSpeedUtils {
private static final String TAG = "PlaybackSpeedUtils";
private PlaybackSpeedUtils() {
}
@ -33,8 +35,10 @@ public final class PlaybackSpeedUtils {
FeedItem item = ((FeedMedia) media).getItem();
if (item != null) {
Feed feed = item.getFeed();
if (feed != null) {
if (feed != null && feed.getPreferences() != null) {
playbackSpeed = feed.getPreferences().getFeedPlaybackSpeed();
} else {
Log.d(TAG, "Can not get feed specific playback speed: " + feed);
}
}
}

View File

@ -517,11 +517,12 @@ public class PlaybackService extends MediaBrowserServiceCompat {
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
playableLoaded -> {
mediaPlayer.playMediaObject(playable, stream, startWhenPrepared,
mediaPlayer.playMediaObject(playableLoaded, stream, startWhenPrepared,
prepareImmediately);
addPlayableToQueue(playable);
addPlayableToQueue(playableLoaded);
}, error -> {
Log.d(TAG, "Playable was not found. Stopping service.");
error.printStackTrace();
stateManager.stopService();
});
return Service.START_NOT_STICKY;
@ -729,6 +730,7 @@ public class PlaybackService extends MediaBrowserServiceCompat {
addPlayableToQueue(playable);
}, error -> {
Log.d(TAG, "Playable was not loaded from preferences. Stopping service.");
error.printStackTrace();
stateManager.stopService();
});
}

View File

@ -236,7 +236,7 @@
<string-array name="media_player_options">
<item>@string/media_player_builtin</item>
<item>@string/media_player_sonic</item>
<item>@string/media_player_exoplayer</item>
<item>@string/media_player_exoplayer_recommended</item>
</string-array>
<string-array name="media_player_values">

View File

@ -501,7 +501,7 @@
<string name="pref_enqueue_downloaded_summary">Add downloaded episodes to the queue</string>
<string name="media_player_builtin">Built-in Android player</string>
<string name="media_player_sonic" translatable="false">Sonic Media Player</string>
<string name="media_player_exoplayer" translatable="false">ExoPlayer</string>
<string name="media_player_exoplayer_recommended">ExoPlayer (recommended)</string>
<string name="media_player_switch_to_exoplayer">Switch to ExoPlayer</string>
<string name="media_player_switched_to_exoplayer">Switched to ExoPlayer.</string>
<string name="pref_skip_silence_title">Skip Silence in Audio</string>
@ -739,6 +739,7 @@
<string name="reconnect_local_folder">Re-connect local folder</string>
<string name="reconnect_local_folder_warning">In case of permission denials, you can use this to re-connect to the exact same folder. Do not select another folder.</string>
<string name="local_feed_description">This virtual podcast was created by adding a folder to AntennaPod.</string>
<string name="unable_to_start_system_file_manager">Unable to start system file manager</string>
<string name="filter">Filter</string>