diff options
Diffstat (limited to 'app/src/main')
8 files changed, 90 insertions, 29 deletions
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 85abf9411..728019196 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MainActivity.java @@ -208,7 +208,6 @@ public class MainActivity extends CastEnabledActivity implements NavDrawerActivi checkFirstLaunch(); PreferenceUpgrader.checkUpgrades(this); - NotificationUtils.createChannels(this); } private void saveLastNavFragment(String tag) { diff --git a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerInfoActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerInfoActivity.java index 858f28747..4fec1cfc5 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerInfoActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/MediaplayerInfoActivity.java @@ -169,6 +169,7 @@ public abstract class MediaplayerInfoActivity extends MediaplayerActivity implem pager.setCurrentItem(lastPosition); } + @Override protected void onStart() { super.onStart(); EventDistributor.getInstance().register(contentUpdate); diff --git a/app/src/main/java/de/danoeh/antennapod/discovery/PodcastSearchResult.java b/app/src/main/java/de/danoeh/antennapod/discovery/PodcastSearchResult.java index 39c5b8dee..ca9ed83d7 100644 --- a/app/src/main/java/de/danoeh/antennapod/discovery/PodcastSearchResult.java +++ b/app/src/main/java/de/danoeh/antennapod/discovery/PodcastSearchResult.java @@ -32,6 +32,10 @@ public class PodcastSearchResult { this.feedUrl = feedUrl; } + public static PodcastSearchResult dummy() { + return new PodcastSearchResult("", "", ""); + } + /** * Constructs a Podcast instance from a iTunes search result * diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java index 149718569..432ada44e 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/ItemFragment.java @@ -603,8 +603,9 @@ public class ItemFragment extends Fragment implements OnSwipeGesture { @Nullable private FeedItem loadInBackground() { FeedItem feedItem = DBReader.getFeedItem(feedItems[feedItemPos]); - if (feedItem != null) { - Timeline t = new Timeline(getContext(), feedItem); + Context context = getContext(); + if (feedItem != null && context != null) { + Timeline t = new Timeline(context, feedItem); webviewData = t.processShownotes(false); } return feedItem; diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/QuickFeedDiscoveryFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/QuickFeedDiscoveryFragment.java index 6b3168ee6..e4213cc6b 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/QuickFeedDiscoveryFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/QuickFeedDiscoveryFragment.java @@ -10,6 +10,7 @@ import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.GridView; import android.widget.ProgressBar; +import android.widget.TextView; import com.afollestad.materialdialogs.MaterialDialog; import de.danoeh.antennapod.R; import de.danoeh.antennapod.activity.MainActivity; @@ -19,6 +20,9 @@ import de.danoeh.antennapod.discovery.ItunesTopListLoader; import de.danoeh.antennapod.discovery.PodcastSearchResult; import io.reactivex.disposables.Disposable; +import java.util.ArrayList; +import java.util.List; + public class QuickFeedDiscoveryFragment extends Fragment implements AdapterView.OnItemClickListener { private static final String TAG = "FeedDiscoveryFragment"; @@ -27,6 +31,7 @@ public class QuickFeedDiscoveryFragment extends Fragment implements AdapterView. private Disposable disposable; private FeedDiscoverAdapter adapter; private GridView subscriptionGridLayout; + private TextView errorTextView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -35,13 +40,23 @@ public class QuickFeedDiscoveryFragment extends Fragment implements AdapterView. View discoverMore = root.findViewById(R.id.discover_more); discoverMore.setOnClickListener(v -> ((MainActivity) getActivity()).loadChildFragment(new ItunesSearchFragment())); - subscriptionGridLayout = root.findViewById(R.id.discover_grid); + subscriptionGridLayout = root.findViewById(R.id.discover_grid); progressBar = root.findViewById(R.id.discover_progress_bar); + errorTextView = root.findViewById(R.id.discover_error); + adapter = new FeedDiscoverAdapter((MainActivity) getActivity()); subscriptionGridLayout.setAdapter(adapter); subscriptionGridLayout.setOnItemClickListener(this); + // Fill with dummy elements to have a fixed height and + // prevent the UI elements below from jumping on slow connections + List<PodcastSearchResult> dummies = new ArrayList<>(); + for (int i = 0; i < 8; i++) { + dummies.add(PodcastSearchResult.dummy()); + } + adapter.updateData(dummies); + loadToplist(); return root; @@ -57,18 +72,22 @@ public class QuickFeedDiscoveryFragment extends Fragment implements AdapterView. private void loadToplist() { progressBar.setVisibility(View.VISIBLE); - subscriptionGridLayout.setVisibility(View.GONE); + subscriptionGridLayout.setVisibility(View.INVISIBLE); + errorTextView.setVisibility(View.GONE); ItunesTopListLoader loader = new ItunesTopListLoader(getContext()); disposable = loader.loadToplist(8) .subscribe(podcasts -> { + errorTextView.setVisibility(View.GONE); progressBar.setVisibility(View.GONE); subscriptionGridLayout.setVisibility(View.VISIBLE); adapter.updateData(podcasts); }, error -> { Log.e(TAG, Log.getStackTraceString(error)); + errorTextView.setText(error.getLocalizedMessage()); + errorTextView.setVisibility(View.VISIBLE); progressBar.setVisibility(View.GONE); - subscriptionGridLayout.setVisibility(View.VISIBLE); + subscriptionGridLayout.setVisibility(View.INVISIBLE); }); } diff --git a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceUpgrader.java b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceUpgrader.java index 93b326698..5866f8715 100644 --- a/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceUpgrader.java +++ b/app/src/main/java/de/danoeh/antennapod/preferences/PreferenceUpgrader.java @@ -2,28 +2,51 @@ package de.danoeh.antennapod.preferences; import android.content.Context; import android.content.SharedPreferences; +import android.preference.PreferenceManager; import de.danoeh.antennapod.BuildConfig; import de.danoeh.antennapod.core.preferences.UserPreferences; +import de.danoeh.antennapod.core.util.gui.NotificationUtils; public class PreferenceUpgrader { private static final String PREF_CONFIGURED_VERSION = "configuredVersion"; private static final String PREF_NAME = "PreferenceUpgrader"; + private static SharedPreferences prefs; public static void checkUpgrades(Context context) { - SharedPreferences prefs = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE); - int oldVersion = prefs.getInt(PREF_CONFIGURED_VERSION, 1070200); + prefs = PreferenceManager.getDefaultSharedPreferences(context); + SharedPreferences upgraderPrefs = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE); + int oldVersion = upgraderPrefs.getInt(PREF_CONFIGURED_VERSION, 1070200); int newVersion = BuildConfig.VERSION_CODE; if (oldVersion != newVersion) { - prefs.edit().putInt(PREF_CONFIGURED_VERSION, newVersion).apply(); + NotificationUtils.createChannels(context); + + upgraderPrefs.edit().putInt(PREF_CONFIGURED_VERSION, newVersion).apply(); upgrade(oldVersion); } } private static void upgrade(int oldVersion) { + if (oldVersion < 1070196) { + // migrate episode cleanup value (unit changed from days to hours) + int oldValueInDays = UserPreferences.getEpisodeCleanupValue(); + if (oldValueInDays > 0) { + UserPreferences.setEpisodeCleanupValue(oldValueInDays * 24); + } // else 0 or special negative values, no change needed + } + if (oldVersion < 1070197) { + if (prefs.getBoolean("prefMobileUpdate", false)) { + prefs.edit().putString(UserPreferences.PREF_MOBILE_UPDATE, "everything").apply(); + } + } if (oldVersion < 1070300) { UserPreferences.restartUpdateAlarm(); + + if (UserPreferences.getMediaPlayer().equals("builtin")) { + prefs.edit().putString(UserPreferences.PREF_MEDIA_PLAYER, + UserPreferences.PREF_MEDIA_PLAYER_EXOPLAYER).apply(); + } } } } diff --git a/app/src/main/res/layout/quick_feed_discovery.xml b/app/src/main/res/layout/quick_feed_discovery.xml index f9c13b680..ce5cfa65b 100644 --- a/app/src/main/res/layout/quick_feed_discovery.xml +++ b/app/src/main/res/layout/quick_feed_discovery.xml @@ -41,27 +41,41 @@ android:textColor="@color/antennapod_blue"/> </LinearLayout> - - <de.danoeh.antennapod.view.WrappingGridView - android:id="@+id/discover_grid" + <RelativeLayout android:layout_width="match_parent" - android:layout_height="wrap_content" - android:numColumns="4" - app:layout_columnWeight="1" - app:layout_rowWeight="1" - android:horizontalSpacing="4dp" - android:verticalSpacing="4dp" - android:scrollbars="none" - android:layout_marginTop="8dp" - android:layout_gravity="center_horizontal"/> + android:layout_height="wrap_content"> + + <de.danoeh.antennapod.view.WrappingGridView + android:id="@+id/discover_grid" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:numColumns="4" + app:layout_columnWeight="1" + app:layout_rowWeight="1" + android:horizontalSpacing="4dp" + android:verticalSpacing="4dp" + android:scrollbars="none" + android:layout_marginTop="8dp" + android:layout_centerInParent="true" + android:layout_gravity="center_horizontal"/> + + <ProgressBar + android:id="@+id/discover_progress_bar" + style="?android:attr/progressBarStyle" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:layout_centerInParent="true" + android:layout_marginTop="30dp"/> + + <TextView + android:id="@+id/discover_error" + android:textColor="@color/md_edittext_error" + android:layout_width="match_parent" + android:layout_centerInParent="true" + android:layout_height="wrap_content" /> - <ProgressBar - android:id="@+id/discover_progress_bar" - style="?android:attr/progressBarStyle" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center" - android:layout_marginTop="30dp"/> + </RelativeLayout> </LinearLayout> diff --git a/app/src/main/res/xml/preferences_playback.xml b/app/src/main/res/xml/preferences_playback.xml index 8b8efa023..d609d3daa 100644 --- a/app/src/main/res/xml/preferences_playback.xml +++ b/app/src/main/res/xml/preferences_playback.xml @@ -115,7 +115,7 @@ <PreferenceCategory android:title="@string/media_player"> <ListPreference - android:defaultValue="sonic" + android:defaultValue="exoplayer" android:entries="@array/media_player_options" android:key="prefMediaPlayer" android:title="@string/media_player" |