diff options
Diffstat (limited to 'app/src/main/java')
10 files changed, 36 insertions, 24 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/PodcastApp.java b/app/src/main/java/de/danoeh/antennapod/PodcastApp.java index 66ce4adc6..7cbe32e11 100644 --- a/app/src/main/java/de/danoeh/antennapod/PodcastApp.java +++ b/app/src/main/java/de/danoeh/antennapod/PodcastApp.java @@ -5,6 +5,7 @@ import android.content.Intent; import android.os.StrictMode; import androidx.multidex.MultiDexApplication; +import com.google.android.material.color.DynamicColors; import com.joanzapata.iconify.Iconify; import com.joanzapata.iconify.fonts.FontAwesomeModule; import com.joanzapata.iconify.fonts.MaterialModule; @@ -64,6 +65,8 @@ public class PodcastApp extends MultiDexApplication { .logNoSubscriberMessages(false) .sendNoSubscriberEvent(false) .installDefaultEventBus(); + + DynamicColors.applyToActivitiesIfAvailable(this); } public static void forceRestart() { diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/ChaptersListAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/ChaptersListAdapter.java index 2b11c5ff9..31e6efc5a 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/ChaptersListAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/ChaptersListAdapter.java @@ -14,12 +14,12 @@ import com.bumptech.glide.Glide; import com.bumptech.glide.load.resource.bitmap.FitCenter; import com.bumptech.glide.load.resource.bitmap.RoundedCorners; import com.bumptech.glide.request.RequestOptions; +import com.google.android.material.elevation.SurfaceColors; import de.danoeh.antennapod.R; import de.danoeh.antennapod.model.feed.Chapter; import de.danoeh.antennapod.core.util.Converter; import de.danoeh.antennapod.model.feed.EmbeddedChapterImage; import de.danoeh.antennapod.core.util.IntentUtils; -import de.danoeh.antennapod.ui.common.ThemeUtils; import de.danoeh.antennapod.model.playback.Playable; import de.danoeh.antennapod.ui.common.CircularProgressBar; @@ -85,8 +85,8 @@ public class ChaptersListAdapter extends RecyclerView.Adapter<ChaptersListAdapte }); if (position == currentChapterIndex) { - int playingBackGroundColor = ThemeUtils.getColorFromAttr(context, R.attr.currently_playing_background); - holder.itemView.setBackgroundColor(playingBackGroundColor); + float density = context.getResources().getDisplayMetrics().density; + holder.itemView.setBackgroundColor(SurfaceColors.getColorForElevation(context, 8 * density)); float progress = ((float) (currentChapterPosition - sc.getStart())) / duration; progress = Math.max(progress, CircularProgressBar.MINIMUM_PERCENTAGE); progress = Math.min(progress, CircularProgressBar.MAXIMUM_PERCENTAGE); diff --git a/app/src/main/java/de/danoeh/antennapod/adapter/DownloadLogAdapter.java b/app/src/main/java/de/danoeh/antennapod/adapter/DownloadLogAdapter.java index a0d86d5c0..8df3e3968 100644 --- a/app/src/main/java/de/danoeh/antennapod/adapter/DownloadLogAdapter.java +++ b/app/src/main/java/de/danoeh/antennapod/adapter/DownloadLogAdapter.java @@ -8,7 +8,6 @@ import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Toast; -import androidx.core.content.ContextCompat; import de.danoeh.antennapod.R; import de.danoeh.antennapod.activity.MainActivity; import de.danoeh.antennapod.net.download.serviceinterface.DownloadRequest; @@ -93,7 +92,7 @@ public class DownloadLogAdapter extends BaseAdapter { } if (status.isSuccessful()) { - holder.icon.setTextColor(ContextCompat.getColor(context, R.color.download_success_green)); + holder.icon.setTextColor(ThemeUtils.getColorFromAttr(context, R.attr.icon_green)); holder.icon.setText("{fa-check-circle}"); holder.icon.setContentDescription(context.getString(R.string.download_successful)); holder.secondaryActionButton.setVisibility(View.INVISIBLE); @@ -101,10 +100,10 @@ public class DownloadLogAdapter extends BaseAdapter { holder.tapForDetails.setVisibility(View.GONE); } else { if (status.getReason() == DownloadError.ERROR_PARSER_EXCEPTION_DUPLICATE) { - holder.icon.setTextColor(ContextCompat.getColor(context, R.color.download_warning_yellow)); + holder.icon.setTextColor(ThemeUtils.getColorFromAttr(context, R.attr.icon_yellow)); holder.icon.setText("{fa-exclamation-circle}"); } else { - holder.icon.setTextColor(ContextCompat.getColor(context, R.color.download_failed_red)); + holder.icon.setTextColor(ThemeUtils.getColorFromAttr(context, R.attr.icon_red)); holder.icon.setText("{fa-times-circle}"); } holder.icon.setContentDescription(context.getString(R.string.error_label)); diff --git a/app/src/main/java/de/danoeh/antennapod/dialog/ProxyDialog.java b/app/src/main/java/de/danoeh/antennapod/dialog/ProxyDialog.java index 68dd60372..4d9c526c0 100644 --- a/app/src/main/java/de/danoeh/antennapod/dialog/ProxyDialog.java +++ b/app/src/main/java/de/danoeh/antennapod/dialog/ProxyDialog.java @@ -6,7 +6,6 @@ import android.content.res.TypedArray; import android.os.Build; import androidx.appcompat.app.AlertDialog; import com.google.android.material.dialog.MaterialAlertDialogBuilder; -import androidx.core.content.ContextCompat; import android.text.Editable; import android.text.TextUtils; import android.text.TextWatcher; @@ -31,6 +30,7 @@ import de.danoeh.antennapod.R; import de.danoeh.antennapod.storage.preferences.UserPreferences; import de.danoeh.antennapod.core.service.download.AntennapodHttpClient; import de.danoeh.antennapod.model.download.ProxyConfig; +import de.danoeh.antennapod.ui.common.ThemeUtils; import io.reactivex.Completable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; @@ -299,7 +299,7 @@ public class ProxyDialog { .observeOn(AndroidSchedulers.mainThread()) .subscribe( () -> { - txtvMessage.setTextColor(ContextCompat.getColor(context, R.color.download_success_green)); + txtvMessage.setTextColor(ThemeUtils.getColorFromAttr(context, R.attr.icon_green)); String message = String.format("%s %s", "{fa-check}", context.getString(R.string.proxy_test_successful)); txtvMessage.setText(message); @@ -307,7 +307,7 @@ public class ProxyDialog { }, error -> { error.printStackTrace(); - txtvMessage.setTextColor(ContextCompat.getColor(context, R.color.download_failed_red)); + txtvMessage.setTextColor(ThemeUtils.getColorFromAttr(context, R.attr.icon_red)); String message = String.format("%s %s: %s", "{fa-close}", context.getString(R.string.proxy_test_failed), error.getMessage()); txtvMessage.setText(message); diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/AudioPlayerFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/AudioPlayerFragment.java index 1539ebecf..530d87e7f 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/AudioPlayerFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/AudioPlayerFragment.java @@ -121,7 +121,8 @@ public class AudioPlayerFragment extends Fragment implements getChildFragmentManager().beginTransaction() .replace(R.id.playerFragment, externalPlayerFragment, ExternalPlayerFragment.TAG) .commit(); - root.findViewById(R.id.playerFragment).setBackgroundColor(SurfaceColors.getColorForElevation(getContext(), 8)); + root.findViewById(R.id.playerFragment).setBackgroundColor( + SurfaceColors.getColorForElevation(getContext(), 8 * getResources().getDisplayMetrics().density)); butPlaybackSpeed = root.findViewById(R.id.butPlaybackSpeed); txtvPlaybackSpeed = root.findViewById(R.id.txtvPlaybackSpeed); diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/UserInterfacePreferencesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/UserInterfacePreferencesFragment.java index 59c2c4a8e..caf555964 100644 --- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/UserInterfacePreferencesFragment.java +++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/UserInterfacePreferencesFragment.java @@ -44,6 +44,16 @@ public class UserInterfacePreferencesFragment extends PreferenceFragmentCompat { return true; }); + if (Build.VERSION.SDK_INT < 31) { + findPreference(UserPreferences.PREF_TINTED_COLORS).setVisible(false); + } + findPreference(UserPreferences.PREF_TINTED_COLORS) + .setOnPreferenceChangeListener( + (preference, newValue) -> { + ActivityCompat.recreate(getActivity()); + return true; + }); + findPreference(UserPreferences.PREF_SHOW_TIME_LEFT) .setOnPreferenceChangeListener( (preference, newValue) -> { diff --git a/app/src/main/java/de/danoeh/antennapod/preferences/MasterSwitchPreference.java b/app/src/main/java/de/danoeh/antennapod/preferences/MasterSwitchPreference.java index 94e60ef61..62e162a7c 100644 --- a/app/src/main/java/de/danoeh/antennapod/preferences/MasterSwitchPreference.java +++ b/app/src/main/java/de/danoeh/antennapod/preferences/MasterSwitchPreference.java @@ -7,10 +7,10 @@ import android.os.Build; import androidx.preference.SwitchPreferenceCompat; import androidx.preference.PreferenceViewHolder; import android.util.AttributeSet; -import android.util.TypedValue; import android.widget.TextView; import de.danoeh.antennapod.R; +import de.danoeh.antennapod.ui.common.ThemeUtils; public class MasterSwitchPreference extends SwitchPreferenceCompat { @@ -36,10 +36,7 @@ public class MasterSwitchPreference extends SwitchPreferenceCompat { public void onBindViewHolder(PreferenceViewHolder holder) { super.onBindViewHolder(holder); - TypedValue typedValue = new TypedValue(); - getContext().getTheme().resolveAttribute(R.attr.master_switch_background, typedValue, true); - holder.itemView.setBackgroundColor(typedValue.data); - + holder.itemView.setBackgroundColor(ThemeUtils.getColorFromAttr(getContext(), R.attr.colorSurfaceVariant)); TextView title = (TextView) holder.findViewById(android.R.id.title); if (title != null) { title.setTypeface(title.getTypeface(), Typeface.BOLD); diff --git a/app/src/main/java/de/danoeh/antennapod/view/ChapterSeekBar.java b/app/src/main/java/de/danoeh/antennapod/view/ChapterSeekBar.java index 7c6b64e2c..d35206647 100644 --- a/app/src/main/java/de/danoeh/antennapod/view/ChapterSeekBar.java +++ b/app/src/main/java/de/danoeh/antennapod/view/ChapterSeekBar.java @@ -6,6 +6,7 @@ import android.graphics.Paint; import android.os.Handler; import android.os.Looper; import android.util.AttributeSet; +import de.danoeh.antennapod.R; import de.danoeh.antennapod.ui.common.ThemeUtils; public class ChapterSeekBar extends androidx.appcompat.widget.AppCompatSeekBar { @@ -42,11 +43,9 @@ public class ChapterSeekBar extends androidx.appcompat.widget.AppCompatSeekBar { dividerPos = null; density = context.getResources().getDisplayMetrics().density; - paintBackground.setColor(ThemeUtils.getColorFromAttr(getContext(), - de.danoeh.antennapod.core.R.attr.currently_playing_background)); + paintBackground.setColor(ThemeUtils.getColorFromAttr(getContext(), R.attr.colorSurfaceVariant)); paintBackground.setAlpha(128); - paintProgressPrimary.setColor(ThemeUtils.getColorFromAttr(getContext(), - de.danoeh.antennapod.core.R.attr.colorPrimary)); + paintProgressPrimary.setColor(ThemeUtils.getColorFromAttr(getContext(), R.attr.colorPrimary)); } /** diff --git a/app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java b/app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java index 72ad46373..9da836a69 100644 --- a/app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java +++ b/app/src/main/java/de/danoeh/antennapod/view/viewholder/EpisodeItemViewHolder.java @@ -15,6 +15,7 @@ import android.widget.TextView; import androidx.cardview.widget.CardView; import androidx.recyclerview.widget.RecyclerView; +import com.google.android.material.elevation.SurfaceColors; import com.joanzapata.iconify.Iconify; import de.danoeh.antennapod.R; @@ -141,7 +142,8 @@ public class EpisodeItemViewHolder extends RecyclerView.ViewHolder { duration.setVisibility(media.getDuration() > 0 ? View.VISIBLE : View.GONE); if (PlaybackStatus.isCurrentlyPlaying(media)) { - itemView.setBackgroundColor(ThemeUtils.getColorFromAttr(activity, R.attr.currently_playing_background)); + float density = activity.getResources().getDisplayMetrics().density; + itemView.setBackgroundColor(SurfaceColors.getColorForElevation(activity, 8 * density)); } else { itemView.setBackgroundResource(ThemeUtils.getDrawableFromAttr(activity, R.attr.selectableItemBackground)); } diff --git a/app/src/main/java/de/danoeh/antennapod/view/viewholder/HorizontalItemViewHolder.java b/app/src/main/java/de/danoeh/antennapod/view/viewholder/HorizontalItemViewHolder.java index 83d589518..05240b371 100644 --- a/app/src/main/java/de/danoeh/antennapod/view/viewholder/HorizontalItemViewHolder.java +++ b/app/src/main/java/de/danoeh/antennapod/view/viewholder/HorizontalItemViewHolder.java @@ -8,6 +8,7 @@ import android.widget.ProgressBar; import android.widget.TextView; import androidx.cardview.widget.CardView; import androidx.recyclerview.widget.RecyclerView; +import com.google.android.material.elevation.SurfaceColors; import de.danoeh.antennapod.R; import de.danoeh.antennapod.activity.MainActivity; import de.danoeh.antennapod.adapter.CoverLoader; @@ -56,6 +57,8 @@ public class HorizontalItemViewHolder extends RecyclerView.ViewHolder { this.item = item; card.setAlpha(1.0f); + float density = activity.getResources().getDisplayMetrics().density; + card.setCardBackgroundColor(SurfaceColors.getColorForElevation(activity, 1 * density)); new CoverLoader(activity) .withUri(ImageResourceUtils.getEpisodeListImageLocation(item)) .withFallbackUri(item.getFeed().getImageUrl()) @@ -73,9 +76,7 @@ public class HorizontalItemViewHolder extends RecyclerView.ViewHolder { setProgressBar(false, 0); } else { if (PlaybackStatus.isCurrentlyPlaying(media)) { - card.setCardBackgroundColor(ThemeUtils.getColorFromAttr(activity, R.attr.card_background_playing)); - } else { - card.setCardBackgroundColor(ThemeUtils.getColorFromAttr(activity, R.attr.card_background)); + card.setCardBackgroundColor(ThemeUtils.getColorFromAttr(activity, R.attr.colorSurfaceVariant)); } if (item.getMedia().getDuration() > 0 && item.getMedia().getPosition() > 0) { |