Podcast page re-design (#5842)
Makes the settings button more visible, following a mock-up on the forum
This commit is contained in:
parent
a01c24984e
commit
8775031b20
@ -139,6 +139,7 @@ public class FeedInfoFragment extends Fragment implements Toolbar.OnMenuItemClic
|
||||
infoContainer = root.findViewById(R.id.infoContainer);
|
||||
root.findViewById(R.id.butShowInfo).setVisibility(View.INVISIBLE);
|
||||
root.findViewById(R.id.butShowSettings).setVisibility(View.INVISIBLE);
|
||||
root.findViewById(R.id.butFilter).setVisibility(View.INVISIBLE);
|
||||
// https://github.com/bumptech/glide/issues/529
|
||||
imgvBackground.setColorFilter(new LightingColorFilter(0xff828282, 0x000000));
|
||||
|
||||
|
@ -15,10 +15,6 @@ import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
@ -26,14 +22,10 @@ import androidx.appcompat.content.res.AppCompatResources;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.request.RequestOptions;
|
||||
import com.google.android.material.appbar.AppBarLayout;
|
||||
import com.google.android.material.appbar.CollapsingToolbarLayout;
|
||||
import com.google.android.material.snackbar.Snackbar;
|
||||
import com.joanzapata.iconify.Iconify;
|
||||
import com.joanzapata.iconify.widget.IconTextView;
|
||||
import com.leinardi.android.speeddial.SpeedDialView;
|
||||
import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.activity.MainActivity;
|
||||
@ -45,13 +37,14 @@ import de.danoeh.antennapod.core.glide.ApGlideSettings;
|
||||
import de.danoeh.antennapod.core.glide.FastBlurTransformation;
|
||||
import de.danoeh.antennapod.core.menuhandler.MenuItemUtils;
|
||||
import de.danoeh.antennapod.core.service.download.DownloadService;
|
||||
import de.danoeh.antennapod.model.download.DownloadStatus;
|
||||
import de.danoeh.antennapod.core.storage.DBReader;
|
||||
import de.danoeh.antennapod.core.storage.DBTasks;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.core.util.FeedItemPermutors;
|
||||
import de.danoeh.antennapod.core.util.FeedItemUtil;
|
||||
import de.danoeh.antennapod.core.util.gui.MoreContentListFooterUtil;
|
||||
import de.danoeh.antennapod.databinding.FeedItemListFragmentBinding;
|
||||
import de.danoeh.antennapod.databinding.MultiSelectSpeedDialBinding;
|
||||
import de.danoeh.antennapod.dialog.DownloadLogDetailsDialog;
|
||||
import de.danoeh.antennapod.dialog.FilterDialog;
|
||||
import de.danoeh.antennapod.dialog.RemoveFeedDialog;
|
||||
@ -67,10 +60,10 @@ import de.danoeh.antennapod.fragment.actions.EpisodeMultiSelectActionHandler;
|
||||
import de.danoeh.antennapod.fragment.swipeactions.SwipeActions;
|
||||
import de.danoeh.antennapod.menuhandler.FeedItemMenuHandler;
|
||||
import de.danoeh.antennapod.menuhandler.FeedMenuHandler;
|
||||
import de.danoeh.antennapod.model.download.DownloadStatus;
|
||||
import de.danoeh.antennapod.model.feed.Feed;
|
||||
import de.danoeh.antennapod.model.feed.FeedItem;
|
||||
import de.danoeh.antennapod.model.feed.FeedItemFilter;
|
||||
import de.danoeh.antennapod.view.EpisodeItemListRecyclerView;
|
||||
import de.danoeh.antennapod.view.ToolbarIconTintManager;
|
||||
import de.danoeh.antennapod.view.viewholder.EpisodeItemViewHolder;
|
||||
import io.reactivex.Maybe;
|
||||
@ -98,29 +91,14 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
|
||||
private FeedItemListAdapter adapter;
|
||||
private SwipeActions swipeActions;
|
||||
private MoreContentListFooterUtil nextPageLoader;
|
||||
|
||||
private ProgressBar progressBar;
|
||||
private EpisodeItemListRecyclerView recyclerView;
|
||||
private TextView txtvTitle;
|
||||
private IconTextView txtvFailure;
|
||||
private ImageView imgvBackground;
|
||||
private ImageView imgvCover;
|
||||
private TextView txtvInformation;
|
||||
private TextView txtvAuthor;
|
||||
private TextView txtvUpdatesDisabled;
|
||||
private ImageButton butShowInfo;
|
||||
private ImageButton butShowSettings;
|
||||
private View header;
|
||||
private Toolbar toolbar;
|
||||
private SpeedDialView speedDialView;
|
||||
|
||||
private boolean displayUpArrow;
|
||||
|
||||
private long feedID;
|
||||
private Feed feed;
|
||||
private boolean headerCreated = false;
|
||||
private boolean isUpdatingFeed;
|
||||
private Disposable disposable;
|
||||
private FeedItemListFragmentBinding viewBinding;
|
||||
private MultiSelectSpeedDialBinding speedDialBinding;
|
||||
|
||||
/**
|
||||
* Creates new ItemlistFragment which shows the Feeditems of a specific
|
||||
@ -140,7 +118,6 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setRetainInstance(true);
|
||||
|
||||
Bundle args = getArguments();
|
||||
Validate.notNull(args);
|
||||
@ -151,84 +128,63 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
|
||||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
|
||||
@Nullable Bundle savedInstanceState) {
|
||||
View root = inflater.inflate(R.layout.feed_item_list_fragment, container, false);
|
||||
toolbar = root.findViewById(R.id.toolbar);
|
||||
toolbar.inflateMenu(R.menu.feedlist);
|
||||
toolbar.setOnMenuItemClickListener(this);
|
||||
viewBinding = FeedItemListFragmentBinding.inflate(inflater);
|
||||
speedDialBinding = MultiSelectSpeedDialBinding.bind(viewBinding.getRoot());
|
||||
viewBinding.toolbar.inflateMenu(R.menu.feedlist);
|
||||
viewBinding.toolbar.setOnMenuItemClickListener(this);
|
||||
displayUpArrow = getParentFragmentManager().getBackStackEntryCount() != 0;
|
||||
if (savedInstanceState != null) {
|
||||
displayUpArrow = savedInstanceState.getBoolean(KEY_UP_ARROW);
|
||||
}
|
||||
((MainActivity) getActivity()).setupToolbarToggle(toolbar, displayUpArrow);
|
||||
((MainActivity) getActivity()).setupToolbarToggle(viewBinding.toolbar, displayUpArrow);
|
||||
refreshToolbarState();
|
||||
|
||||
recyclerView = root.findViewById(R.id.recyclerView);
|
||||
recyclerView.setRecycledViewPool(((MainActivity) getActivity()).getRecycledViewPool());
|
||||
|
||||
progressBar = root.findViewById(R.id.progLoading);
|
||||
progressBar.setVisibility(View.VISIBLE);
|
||||
txtvTitle = root.findViewById(R.id.txtvTitle);
|
||||
txtvAuthor = root.findViewById(R.id.txtvAuthor);
|
||||
imgvBackground = root.findViewById(R.id.imgvBackground);
|
||||
imgvCover = root.findViewById(R.id.imgvCover);
|
||||
butShowInfo = root.findViewById(R.id.butShowInfo);
|
||||
butShowSettings = root.findViewById(R.id.butShowSettings);
|
||||
txtvInformation = root.findViewById(R.id.txtvInformation);
|
||||
txtvFailure = root.findViewById(R.id.txtvFailure);
|
||||
txtvUpdatesDisabled = root.findViewById(R.id.txtvUpdatesDisabled);
|
||||
header = root.findViewById(R.id.headerContainer);
|
||||
AppBarLayout appBar = root.findViewById(R.id.appBar);
|
||||
CollapsingToolbarLayout collapsingToolbar = root.findViewById(R.id.collapsing_toolbar);
|
||||
|
||||
ToolbarIconTintManager iconTintManager = new ToolbarIconTintManager(getContext(), toolbar, collapsingToolbar) {
|
||||
viewBinding.recyclerView.setRecycledViewPool(((MainActivity) getActivity()).getRecycledViewPool());
|
||||
viewBinding.progLoading.setVisibility(View.VISIBLE);
|
||||
ToolbarIconTintManager iconTintManager = new ToolbarIconTintManager(
|
||||
getContext(), viewBinding.toolbar, viewBinding.collapsingToolbar) {
|
||||
@Override
|
||||
protected void doTint(Context themedContext) {
|
||||
toolbar.getMenu().findItem(R.id.sort_items)
|
||||
.setIcon(AppCompatResources.getDrawable(themedContext, R.drawable.ic_sort));
|
||||
toolbar.getMenu().findItem(R.id.filter_items)
|
||||
.setIcon(AppCompatResources.getDrawable(themedContext, R.drawable.ic_filter));
|
||||
toolbar.getMenu().findItem(R.id.refresh_item)
|
||||
viewBinding.toolbar.getMenu().findItem(R.id.refresh_item)
|
||||
.setIcon(AppCompatResources.getDrawable(themedContext, R.drawable.ic_refresh));
|
||||
toolbar.getMenu().findItem(R.id.action_search)
|
||||
viewBinding.toolbar.getMenu().findItem(R.id.action_search)
|
||||
.setIcon(AppCompatResources.getDrawable(themedContext, R.drawable.ic_search));
|
||||
}
|
||||
};
|
||||
iconTintManager.updateTint();
|
||||
appBar.addOnOffsetChangedListener(iconTintManager);
|
||||
viewBinding.appBar.addOnOffsetChangedListener(iconTintManager);
|
||||
|
||||
nextPageLoader = new MoreContentListFooterUtil(root.findViewById(R.id.more_content_list_footer));
|
||||
nextPageLoader = new MoreContentListFooterUtil(viewBinding.moreContent.moreContentListFooter);
|
||||
nextPageLoader.setClickListener(() -> {
|
||||
if (feed != null) {
|
||||
DBTasks.loadNextPageOfFeed(getActivity(), feed, false);
|
||||
}
|
||||
});
|
||||
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
||||
viewBinding.recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
||||
@Override
|
||||
public void onScrolled(@NonNull RecyclerView view, int deltaX, int deltaY) {
|
||||
super.onScrolled(view, deltaX, deltaY);
|
||||
boolean hasMorePages = feed != null && feed.isPaged() && feed.getNextPageLink() != null;
|
||||
nextPageLoader.getRoot().setVisibility(
|
||||
(recyclerView.isScrolledToBottom() && hasMorePages) ? View.VISIBLE : View.GONE);
|
||||
(viewBinding.recyclerView.isScrolledToBottom() && hasMorePages) ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
});
|
||||
|
||||
EventBus.getDefault().register(this);
|
||||
|
||||
SwipeRefreshLayout swipeRefreshLayout = root.findViewById(R.id.swipeRefresh);
|
||||
swipeRefreshLayout.setDistanceToTriggerSync(getResources().getInteger(R.integer.swipe_refresh_distance));
|
||||
swipeRefreshLayout.setOnRefreshListener(() -> {
|
||||
viewBinding.swipeRefresh.setDistanceToTriggerSync(getResources().getInteger(R.integer.swipe_refresh_distance));
|
||||
viewBinding.swipeRefresh.setOnRefreshListener(() -> {
|
||||
DBTasks.forceRefreshFeed(requireContext(), feed, true);
|
||||
new Handler(Looper.getMainLooper()).postDelayed(() -> swipeRefreshLayout.setRefreshing(false),
|
||||
new Handler(Looper.getMainLooper()).postDelayed(() -> viewBinding.swipeRefresh.setRefreshing(false),
|
||||
getResources().getInteger(R.integer.swipe_to_refresh_duration_in_ms));
|
||||
});
|
||||
|
||||
loadItems();
|
||||
|
||||
// Init action UI (via a FAB Speed Dial)
|
||||
speedDialView = root.findViewById(R.id.fabSD);
|
||||
speedDialView.setOverlayLayout(root.findViewById(R.id.fabSDOverlay));
|
||||
speedDialView.inflate(R.menu.episodes_apply_action_speeddial);
|
||||
speedDialView.setOnChangeListener(new SpeedDialView.OnChangeListener() {
|
||||
speedDialBinding.fabSD.setOverlayLayout(speedDialBinding.fabSDOverlay);
|
||||
speedDialBinding.fabSD.inflate(R.menu.episodes_apply_action_speeddial);
|
||||
speedDialBinding.fabSD.setOnChangeListener(new SpeedDialView.OnChangeListener() {
|
||||
@Override
|
||||
public boolean onMainActionSelected() {
|
||||
return false;
|
||||
@ -239,17 +195,17 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
|
||||
if (open && adapter.getSelectedCount() == 0) {
|
||||
((MainActivity) getActivity()).showSnackbarAbovePlayer(R.string.no_items_selected,
|
||||
Snackbar.LENGTH_SHORT);
|
||||
speedDialView.close();
|
||||
speedDialBinding.fabSD.close();
|
||||
}
|
||||
}
|
||||
});
|
||||
speedDialView.setOnActionSelectedListener(actionItem -> {
|
||||
speedDialBinding.fabSD.setOnActionSelectedListener(actionItem -> {
|
||||
new EpisodeMultiSelectActionHandler(((MainActivity) getActivity()), adapter.getSelectedItems())
|
||||
.handleAction(actionItem.getId());
|
||||
adapter.endSelectMode();
|
||||
return true;
|
||||
});
|
||||
return root;
|
||||
return viewBinding.getRoot();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -279,18 +235,20 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
|
||||
if (feed == null) {
|
||||
return;
|
||||
}
|
||||
toolbar.getMenu().findItem(R.id.visit_website_item).setVisible(feed.getLink() != null);
|
||||
viewBinding.toolbar.getMenu().findItem(R.id.visit_website_item).setVisible(feed.getLink() != null);
|
||||
|
||||
isUpdatingFeed = MenuItemUtils.updateRefreshMenuItem(toolbar.getMenu(),
|
||||
isUpdatingFeed = MenuItemUtils.updateRefreshMenuItem(viewBinding.toolbar.getMenu(),
|
||||
R.id.refresh_item, updateRefreshMenuItemChecker);
|
||||
FeedMenuHandler.onPrepareOptionsMenu(toolbar.getMenu(), feed);
|
||||
FeedMenuHandler.onPrepareOptionsMenu(viewBinding.toolbar.getMenu(), feed);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(@NonNull Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
int horizontalSpacing = (int) getResources().getDimension(R.dimen.additional_horizontal_spacing);
|
||||
header.setPadding(horizontalSpacing, header.getPaddingTop(), horizontalSpacing, header.getPaddingBottom());
|
||||
viewBinding.header.headerContainer.setPadding(
|
||||
horizontalSpacing, viewBinding.header.headerContainer.getPaddingTop(),
|
||||
horizontalSpacing, viewBinding.header.headerContainer.getPaddingBottom());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -391,7 +349,8 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
|
||||
public void onEventMainThread(PlaybackPositionEvent event) {
|
||||
if (adapter != null) {
|
||||
for (int i = 0; i < adapter.getItemCount(); i++) {
|
||||
EpisodeItemViewHolder holder = (EpisodeItemViewHolder) recyclerView.findViewHolderForAdapterPosition(i);
|
||||
EpisodeItemViewHolder holder = (EpisodeItemViewHolder)
|
||||
viewBinding.recyclerView.findViewHolderForAdapterPosition(i);
|
||||
if (holder != null && holder.isCurrentlyPlayingItem()) {
|
||||
holder.notifyPlaybackPositionUpdated(event);
|
||||
break;
|
||||
@ -414,18 +373,18 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
|
||||
public void onStartSelectMode() {
|
||||
swipeActions.detach();
|
||||
if (feed.isLocalFeed()) {
|
||||
speedDialView.removeActionItemById(R.id.download_batch);
|
||||
speedDialView.removeActionItemById(R.id.delete_batch);
|
||||
speedDialBinding.fabSD.removeActionItemById(R.id.download_batch);
|
||||
speedDialBinding.fabSD.removeActionItemById(R.id.delete_batch);
|
||||
}
|
||||
speedDialView.setVisibility(View.VISIBLE);
|
||||
speedDialBinding.fabSD.setVisibility(View.VISIBLE);
|
||||
refreshToolbarState();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEndSelectMode() {
|
||||
speedDialView.close();
|
||||
speedDialView.setVisibility(View.GONE);
|
||||
swipeActions.attachTo(recyclerView);
|
||||
speedDialBinding.fabSD.close();
|
||||
speedDialBinding.fabSD.setVisibility(View.GONE);
|
||||
swipeActions.attachTo(viewBinding.recyclerView);
|
||||
}
|
||||
|
||||
private void updateUi() {
|
||||
@ -466,13 +425,13 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
|
||||
return;
|
||||
}
|
||||
if (adapter == null) {
|
||||
recyclerView.setAdapter(null);
|
||||
viewBinding.recyclerView.setAdapter(null);
|
||||
adapter = new FeedItemListAdapter((MainActivity) getActivity());
|
||||
adapter.setOnSelectModeListener(this);
|
||||
recyclerView.setAdapter(adapter);
|
||||
swipeActions = new SwipeActions(this, TAG).attachTo(recyclerView);
|
||||
viewBinding.recyclerView.setAdapter(adapter);
|
||||
swipeActions = new SwipeActions(this, TAG).attachTo(viewBinding.recyclerView);
|
||||
}
|
||||
progressBar.setVisibility(View.GONE);
|
||||
viewBinding.progLoading.setVisibility(View.GONE);
|
||||
if (feed != null) {
|
||||
adapter.updateItems(feed.getItems());
|
||||
swipeActions.setFilter(feed.getItemFilter());
|
||||
@ -484,31 +443,33 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
|
||||
|
||||
private void refreshHeaderView() {
|
||||
setupHeaderView();
|
||||
if (recyclerView == null || feed == null) {
|
||||
if (viewBinding == null || feed == null) {
|
||||
Log.e(TAG, "Unable to refresh header view");
|
||||
return;
|
||||
}
|
||||
loadFeedImage();
|
||||
if (feed.hasLastUpdateFailed()) {
|
||||
txtvFailure.setVisibility(View.VISIBLE);
|
||||
viewBinding.header.txtvFailure.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
txtvFailure.setVisibility(View.GONE);
|
||||
viewBinding.header.txtvFailure.setVisibility(View.GONE);
|
||||
}
|
||||
if (!feed.getPreferences().getKeepUpdated()) {
|
||||
txtvUpdatesDisabled.setText("{md-pause-circle-outline} " + this.getString(R.string.updates_disabled_label));
|
||||
Iconify.addIcons(txtvUpdatesDisabled);
|
||||
txtvUpdatesDisabled.setVisibility(View.VISIBLE);
|
||||
viewBinding.header.txtvUpdatesDisabled.setText("{md-pause-circle-outline} "
|
||||
+ this.getString(R.string.updates_disabled_label));
|
||||
Iconify.addIcons(viewBinding.header.txtvUpdatesDisabled);
|
||||
viewBinding.header.txtvUpdatesDisabled.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
txtvUpdatesDisabled.setVisibility(View.GONE);
|
||||
viewBinding.header.txtvUpdatesDisabled.setVisibility(View.GONE);
|
||||
}
|
||||
txtvTitle.setText(feed.getTitle());
|
||||
txtvAuthor.setText(feed.getAuthor());
|
||||
viewBinding.header.txtvTitle.setText(feed.getTitle());
|
||||
viewBinding.header.txtvAuthor.setText(feed.getAuthor());
|
||||
if (feed.getItemFilter() != null) {
|
||||
FeedItemFilter filter = feed.getItemFilter();
|
||||
if (filter.getValues().length > 0) {
|
||||
txtvInformation.setText("{md-info-outline} " + this.getString(R.string.filtered_label));
|
||||
Iconify.addIcons(txtvInformation);
|
||||
txtvInformation.setOnClickListener((l) -> {
|
||||
viewBinding.header.txtvInformation.setText("{md-info-outline} "
|
||||
+ this.getString(R.string.filtered_label));
|
||||
Iconify.addIcons(viewBinding.header.txtvInformation);
|
||||
viewBinding.header.txtvInformation.setOnClickListener((l) -> {
|
||||
FilterDialog filterDialog = new FilterDialog(requireContext(), feed.getItemFilter()) {
|
||||
@Override
|
||||
protected void updateFilter(Set<String> filterValues) {
|
||||
@ -519,12 +480,12 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
|
||||
|
||||
filterDialog.openDialog();
|
||||
});
|
||||
txtvInformation.setVisibility(View.VISIBLE);
|
||||
viewBinding.header.txtvInformation.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
txtvInformation.setVisibility(View.GONE);
|
||||
viewBinding.header.txtvInformation.setVisibility(View.GONE);
|
||||
}
|
||||
} else {
|
||||
txtvInformation.setVisibility(View.GONE);
|
||||
viewBinding.header.txtvInformation.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
@ -534,18 +495,24 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
|
||||
}
|
||||
|
||||
// https://github.com/bumptech/glide/issues/529
|
||||
imgvBackground.setColorFilter(new LightingColorFilter(0xff666666, 0x000000));
|
||||
butShowInfo.setVisibility(View.VISIBLE);
|
||||
butShowInfo.setOnClickListener(v -> showFeedInfo());
|
||||
imgvCover.setOnClickListener(v -> showFeedInfo());
|
||||
butShowSettings.setVisibility(View.VISIBLE);
|
||||
butShowSettings.setOnClickListener(v -> {
|
||||
viewBinding.imgvBackground.setColorFilter(new LightingColorFilter(0xff666666, 0x000000));
|
||||
viewBinding.header.butShowInfo.setOnClickListener(v -> showFeedInfo());
|
||||
viewBinding.header.imgvCover.setOnClickListener(v -> showFeedInfo());
|
||||
viewBinding.header.butShowSettings.setOnClickListener(v -> {
|
||||
if (feed != null) {
|
||||
FeedSettingsFragment fragment = FeedSettingsFragment.newInstance(feed);
|
||||
((MainActivity) getActivity()).loadChildFragment(fragment, TransitionEffect.SLIDE);
|
||||
}
|
||||
});
|
||||
txtvFailure.setOnClickListener(v -> showErrorDetails());
|
||||
viewBinding.header.butFilter.setOnClickListener(
|
||||
v -> new FilterDialog(getContext(), feed.getItemFilter()) {
|
||||
@Override
|
||||
protected void updateFilter(Set<String> filterValues) {
|
||||
feed.setItemFilter(filterValues.toArray(new String[0]));
|
||||
DBWriter.setFeedItemsFilter(feed.getId(), filterValues);
|
||||
}
|
||||
}.openDialog());
|
||||
viewBinding.header.txtvFailure.setOnClickListener(v -> showErrorDetails());
|
||||
headerCreated = true;
|
||||
}
|
||||
|
||||
@ -589,7 +556,7 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
|
||||
.diskCacheStrategy(ApGlideSettings.AP_DISK_CACHE_STRATEGY)
|
||||
.transform(new FastBlurTransformation())
|
||||
.dontAnimate())
|
||||
.into(imgvBackground);
|
||||
.into(viewBinding.imgvBackground);
|
||||
|
||||
Glide.with(getActivity())
|
||||
.load(feed.getImageUrl())
|
||||
@ -599,7 +566,7 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
|
||||
.diskCacheStrategy(ApGlideSettings.AP_DISK_CACHE_STRATEGY)
|
||||
.fitCenter()
|
||||
.dontAnimate())
|
||||
.into(imgvCover);
|
||||
.into(viewBinding.header.imgvCover);
|
||||
}
|
||||
|
||||
private void loadItems() {
|
||||
@ -644,10 +611,10 @@ public class FeedItemlistFragment extends Fragment implements AdapterView.OnItem
|
||||
}
|
||||
switch (event.getKeyCode()) {
|
||||
case KeyEvent.KEYCODE_T:
|
||||
recyclerView.smoothScrollToPosition(0);
|
||||
viewBinding.recyclerView.smoothScrollToPosition(0);
|
||||
break;
|
||||
case KeyEvent.KEYCODE_B:
|
||||
recyclerView.smoothScrollToPosition(adapter.getItemCount() - 1);
|
||||
viewBinding.recyclerView.smoothScrollToPosition(adapter.getItemCount() - 1);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -5,23 +5,17 @@ import android.content.DialogInterface;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import de.danoeh.antennapod.R;
|
||||
import de.danoeh.antennapod.core.dialog.ConfirmationDialog;
|
||||
import de.danoeh.antennapod.model.feed.Feed;
|
||||
import de.danoeh.antennapod.core.storage.DBTasks;
|
||||
import de.danoeh.antennapod.core.storage.DBWriter;
|
||||
import de.danoeh.antennapod.core.util.IntentUtils;
|
||||
import de.danoeh.antennapod.core.util.ShareUtils;
|
||||
import de.danoeh.antennapod.model.feed.SortOrder;
|
||||
import de.danoeh.antennapod.dialog.FilterDialog;
|
||||
import de.danoeh.antennapod.dialog.IntraFeedSortDialog;
|
||||
import de.danoeh.antennapod.model.feed.Feed;
|
||||
import de.danoeh.antennapod.model.feed.SortOrder;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
/**
|
||||
* Handles interactions with the FeedItemMenu.
|
||||
@ -62,8 +56,6 @@ public class FeedMenuHandler {
|
||||
DBTasks.forceRefreshCompleteFeed(context, selectedFeed);
|
||||
} else if (itemId == R.id.sort_items) {
|
||||
showSortDialog(context, selectedFeed);
|
||||
} else if (itemId == R.id.filter_items) {
|
||||
showFilterDialog(context, selectedFeed);
|
||||
} else if (itemId == R.id.mark_all_read_item) {
|
||||
ConfirmationDialog conDialog = new ConfirmationDialog(context,
|
||||
R.string.mark_all_read_label,
|
||||
@ -87,19 +79,6 @@ public class FeedMenuHandler {
|
||||
return true;
|
||||
}
|
||||
|
||||
private static void showFilterDialog(Context context, Feed selectedFeed) {
|
||||
FilterDialog filterDialog = new FilterDialog(context, selectedFeed.getItemFilter()) {
|
||||
@Override
|
||||
protected void updateFilter(Set<String> filterValues) {
|
||||
selectedFeed.setItemFilter(filterValues.toArray(new String[0]));
|
||||
DBWriter.setFeedItemsFilter(selectedFeed.getId(), filterValues);
|
||||
}
|
||||
};
|
||||
|
||||
filterDialog.openDialog();
|
||||
}
|
||||
|
||||
|
||||
private static void showSortDialog(Context context, Feed selectedFeed) {
|
||||
IntraFeedSortDialog sortDialog = new IntraFeedSortDialog(context, selectedFeed.getSortOrder(), selectedFeed.isLocalFeed()) {
|
||||
@Override
|
||||
|
@ -22,19 +22,16 @@
|
||||
<ImageView
|
||||
android:id="@+id/imgvBackground"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="232dp"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/image_readability_tint"
|
||||
style="@style/BigBlurryBackground"
|
||||
app:layout_collapseMode="parallax"
|
||||
app:layout_collapseParallaxMultiplier="0.6" />
|
||||
|
||||
<include
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:id="@+id/header"
|
||||
layout="@layout/feeditemlist_header"
|
||||
app:layout_collapseMode="parallax"
|
||||
app:layout_collapseParallaxMultiplier="0.6" />
|
||||
app:layout_collapseMode="parallax" />
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
@ -73,6 +70,7 @@
|
||||
android:visibility="gone" />
|
||||
|
||||
<include
|
||||
android:id="@+id/more_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
|
@ -23,19 +23,16 @@
|
||||
<ImageView
|
||||
android:id="@+id/imgvBackground"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="232dp"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/image_readability_tint"
|
||||
style="@style/BigBlurryBackground"
|
||||
app:layout_collapseMode="parallax"
|
||||
app:layout_collapseParallaxMultiplier="0.6" />
|
||||
|
||||
<include
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:id="@+id/header"
|
||||
layout="@layout/feeditemlist_header"
|
||||
app:layout_collapseMode="parallax"
|
||||
app:layout_collapseParallaxMultiplier="0.6" />
|
||||
app:layout_collapseMode="parallax" />
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
|
@ -1,134 +1,181 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/headerContainer"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingHorizontal="@dimen/additional_horizontal_spacing"
|
||||
android:layout_marginTop="?attr/actionBarSize"
|
||||
android:orientation="vertical">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/headerContainer"
|
||||
android:paddingHorizontal="@dimen/additional_horizontal_spacing"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:padding="16dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:gravity="center_vertical">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imgvCover"
|
||||
android:layout_width="100dp"
|
||||
android:layout_height="100dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:importantForAccessibility="no"
|
||||
tools:src="@tools:sample/avatars"
|
||||
tools:background="@android:color/holo_green_dark"/>
|
||||
android:layout_height="156dp"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="bottom">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
<TextView
|
||||
android:id="@+id/txtvTitle"
|
||||
style="@style/AntennaPod.TextView.Heading"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="2"
|
||||
android:shadowColor="@color/black"
|
||||
android:shadowRadius="2"
|
||||
android:textColor="@color/white"
|
||||
tools:text="Podcast title"
|
||||
tools:background="@android:color/holo_green_dark"/>
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="8dp"
|
||||
android:background="@color/image_readability_tint"
|
||||
android:orientation="horizontal"
|
||||
android:layout_alignParentBottom="true">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/txtvAuthor"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="2"
|
||||
android:shadowColor="@color/black"
|
||||
android:shadowRadius="2"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/text_size_small"
|
||||
tools:text="Podcast author"
|
||||
tools:background="@android:color/holo_green_dark"/>
|
||||
<View
|
||||
android:layout_width="148dp"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
<ImageButton
|
||||
android:id="@+id/butShowInfo"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:contentDescription="@string/show_info_label"
|
||||
app:srcCompat="@drawable/ic_info_white"
|
||||
tools:background="@android:color/holo_green_dark"
|
||||
android:layout_marginLeft="-8dp"
|
||||
android:layout_marginStart="-8dp"
|
||||
android:scaleType="fitXY"
|
||||
android:visibility="invisible"
|
||||
tools:visibility="visible"
|
||||
android:padding="8dp"/>
|
||||
<ImageButton
|
||||
android:id="@+id/butShowInfo"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:contentDescription="@string/show_info_label"
|
||||
android:layout_marginLeft="-8dp"
|
||||
android:layout_marginStart="-8dp"
|
||||
android:scaleType="fitXY"
|
||||
android:padding="8dp"
|
||||
app:srcCompat="@drawable/ic_info_white"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/butShowSettings"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:contentDescription="@string/show_feed_settings_label"
|
||||
app:srcCompat="@drawable/ic_settings_white"
|
||||
tools:background="@android:color/holo_green_dark"
|
||||
android:scaleType="fitXY"
|
||||
android:visibility="invisible"
|
||||
tools:visibility="visible"
|
||||
android:padding="8dp"/>
|
||||
</LinearLayout>
|
||||
<ImageButton
|
||||
android:id="@+id/butFilter"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:contentDescription="@string/filter"
|
||||
android:scaleType="fitXY"
|
||||
android:padding="8dp"
|
||||
app:srcCompat="@drawable/ic_filter_white"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/butShowSettings"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:contentDescription="@string/show_feed_settings_label"
|
||||
android:scaleType="fitXY"
|
||||
android:padding="8dp"
|
||||
app:srcCompat="@drawable/ic_settings_white"
|
||||
tools:visibility="visible" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
<ImageView
|
||||
android:layout_width="12dp"
|
||||
android:layout_height="12dp"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@drawable/ic_rounded_corner_left" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="12dp"
|
||||
android:layout_height="12dp"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@drawable/ic_rounded_corner_right" />
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/coverHolder"
|
||||
android:layout_width="124dp"
|
||||
android:layout_height="124dp"
|
||||
android:layout_marginBottom="24dp"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_alignParentBottom="true"
|
||||
app:cardBackgroundColor="@color/non_square_icon_background"
|
||||
app:cardCornerRadius="8dp"
|
||||
app:cardPreventCornerOverlap="false"
|
||||
app:cardElevation="0dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imgvCover"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_centerVertical="true"
|
||||
android:importantForAccessibility="no"
|
||||
tools:src="@tools:sample/avatars" />
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_toEndOf="@id/coverHolder"
|
||||
android:layout_alignTop="@id/coverHolder"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/txtvTitle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="2"
|
||||
android:shadowColor="@color/black"
|
||||
android:shadowRadius="2"
|
||||
android:textColor="@color/white"
|
||||
style="@style/AntennaPod.TextView.Heading"
|
||||
tools:text="Podcast title" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/txtvAuthor"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="2"
|
||||
android:shadowColor="@color/black"
|
||||
android:shadowRadius="2"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/text_size_small"
|
||||
tools:text="Podcast author" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<com.joanzapata.iconify.widget.IconTextView
|
||||
android:id="@+id/txtvFailure"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="2dp"
|
||||
android:background="@color/download_failed_red"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/white"
|
||||
android:visibility="gone"
|
||||
android:text="@string/refresh_failed_msg"
|
||||
tools:visibility="visible"
|
||||
tools:text="(!) Last refresh failed"/>
|
||||
android:id="@+id/txtvFailure"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="2dp"
|
||||
android:background="@color/download_failed_red"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/white"
|
||||
android:visibility="gone"
|
||||
android:text="@string/refresh_failed_msg"
|
||||
tools:visibility="visible"
|
||||
tools:text="(!) Last refresh failed" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/txtvInformation"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="2dp"
|
||||
android:background="?android:attr/windowBackground"
|
||||
android:foreground="?android:attr/selectableItemBackground"
|
||||
android:visibility="gone"
|
||||
android:gravity="center"
|
||||
android:textColor="?attr/colorAccent"
|
||||
tools:visibility="visible"
|
||||
tools:text="(i) Information"/>
|
||||
android:id="@+id/txtvInformation"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="2dp"
|
||||
android:background="?android:attr/windowBackground"
|
||||
android:foreground="?android:attr/selectableItemBackground"
|
||||
android:visibility="gone"
|
||||
android:gravity="center"
|
||||
android:textColor="?attr/colorAccent"
|
||||
tools:visibility="visible"
|
||||
tools:text="(i) Information" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/txtvUpdatesDisabled"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="2dp"
|
||||
android:background="?android:attr/windowBackground"
|
||||
android:visibility="gone"
|
||||
android:gravity="center"
|
||||
android:textColor="?attr/colorAccent"
|
||||
tools:visibility="visible"
|
||||
tools:text="Updates disabled"/>
|
||||
android:id="@+id/txtvUpdatesDisabled"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="2dp"
|
||||
android:background="?android:attr/windowBackground"
|
||||
android:visibility="gone"
|
||||
android:gravity="center"
|
||||
android:textColor="?attr/colorAccent"
|
||||
tools:visibility="visible"
|
||||
tools:text="Updates disabled" />
|
||||
|
||||
</LinearLayout>
|
||||
|
@ -4,17 +4,9 @@
|
||||
|
||||
<item
|
||||
android:id="@+id/sort_items"
|
||||
android:icon="@drawable/ic_sort"
|
||||
android:menuCategory="container"
|
||||
android:title="@string/sort"
|
||||
custom:showAsAction="always">
|
||||
</item>
|
||||
<item
|
||||
android:id="@+id/filter_items"
|
||||
android:icon="@drawable/ic_filter"
|
||||
android:menuCategory="container"
|
||||
android:title="@string/filter"
|
||||
custom:showAsAction="always">
|
||||
custom:showAsAction="never">
|
||||
</item>
|
||||
<item
|
||||
android:id="@+id/refresh_item"
|
||||
|
7
core/src/main/res/drawable/ic_filter_white.xml
Normal file
7
core/src/main/res/drawable/ic_filter_white.xml
Normal file
@ -0,0 +1,7 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:height="24dp"
|
||||
android:width="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path android:fillColor="#ffffff" android:pathData="M15,19.88C15.04,20.18 14.94,20.5 14.71,20.71C14.32,21.1 13.69,21.1 13.3,20.71L9.29,16.7C9.06,16.47 8.96,16.16 9,15.87V10.75L4.21,4.62C3.87,4.19 3.95,3.56 4.38,3.22C4.57,3.08 4.78,3 5,3V3H19V3C19.22,3 19.43,3.08 19.62,3.22C20.05,3.56 20.13,4.19 19.79,4.62L15,10.75V19.88M7.04,5L11,10.06V15.58L13,17.58V10.05L16.96,5H7.04Z" />
|
||||
</vector>
|
7
core/src/main/res/drawable/ic_rounded_corner_left.xml
Normal file
7
core/src/main/res/drawable/ic_rounded_corner_left.xml
Normal file
@ -0,0 +1,7 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:height="24dp"
|
||||
android:width="24dp"
|
||||
android:viewportWidth="8"
|
||||
android:viewportHeight="8">
|
||||
<path android:fillColor="?attr/background_color" android:pathData="M0 8 0 0C0 4 4 8 8 8Z" />
|
||||
</vector>
|
7
core/src/main/res/drawable/ic_rounded_corner_right.xml
Normal file
7
core/src/main/res/drawable/ic_rounded_corner_right.xml
Normal file
@ -0,0 +1,7 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:height="24dp"
|
||||
android:width="24dp"
|
||||
android:viewportWidth="8"
|
||||
android:viewportHeight="8">
|
||||
<path android:fillColor="?attr/background_color" android:pathData="M8 8 0 8C4 8 8 4 8 0Z" />
|
||||
</vector>
|
@ -1,5 +0,0 @@
|
||||
<vector android:height="24dp"
|
||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="?attr/action_icon_color" android:pathData="M3,18h6v-2L3,16v2zM3,6v2h18L21,6L3,6zM3,13h12v-2L3,11v2z"/>
|
||||
</vector>
|
@ -8,6 +8,7 @@
|
||||
<attr name="drawer_activated_color" format="color"/>
|
||||
<attr name="action_icon_color" format="color"/>
|
||||
<attr name="scrollbar_thumb" format="reference"/>
|
||||
<attr name="background_color" format="color"/>
|
||||
<attr name="background_elevated" format="color"/>
|
||||
<attr name="filter_dialog_clear" format="color"/>
|
||||
<attr name="filter_dialog_button_background" format="reference"/>
|
||||
|
@ -13,6 +13,7 @@
|
||||
<item name="progressBarTheme">@style/ProgressBarLight</item>
|
||||
<item name="colorPrimaryDark">@color/accent_light</item>
|
||||
<item name="android:windowBackground">@color/background_light</item>
|
||||
<item name="background_color">@color/background_light</item>
|
||||
<item name="actionBarStyle">@style/Widget.AntennaPod.ActionBar.Light</item>
|
||||
<item name="background_elevated">@color/background_elevated_light</item>
|
||||
<item name="master_switch_background">@color/master_switch_background_light</item>
|
||||
@ -46,6 +47,7 @@
|
||||
<item name="colorPrimary">@color/accent_dark</item>
|
||||
<item name="colorPrimaryDark">@color/background_darktheme</item>
|
||||
<item name="android:windowBackground">@color/background_darktheme</item>
|
||||
<item name="background_color">@color/background_darktheme</item>
|
||||
<item name="actionBarStyle">@style/Widget.AntennaPod.ActionBar.Dark</item>
|
||||
<item name="background_elevated">@color/background_elevated_darktheme</item>
|
||||
<item name="colorControlNormal">@color/white</item>
|
||||
@ -83,6 +85,7 @@
|
||||
<item name="android:color">@color/white</item>
|
||||
<item name="android:colorBackground">@color/black</item>
|
||||
<item name="android:windowBackground">@color/black</item>
|
||||
<item name="background_color">@color/black</item>
|
||||
<item name="android:actionBarStyle">@color/black</item>
|
||||
<item name="background_elevated">@color/black</item>
|
||||
<item name="android:textColorHint">@color/medium_gray</item>
|
||||
|
Loading…
x
Reference in New Issue
Block a user