From e8fa58a0d6aafdf238315bdca7195a515975acd7 Mon Sep 17 00:00:00 2001 From: iamssh Date: Fri, 24 Apr 2020 11:51:40 +0530 Subject: [PATCH 01/12] fix toolbar UI --- .../org/schabi/newpipe/settings/tabs/Tab.java | 13 ++- .../schabi/newpipe/util/KioskTranslator.java | 8 +- app/src/main/res/layout/toolbar_layout.xml | 4 +- .../main/res/layout/toolbar_search_layout.xml | 4 +- app/src/main/res/values/styles.xml | 92 +++++++++++++++++++ 5 files changed, 107 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/settings/tabs/Tab.java b/app/src/main/java/org/schabi/newpipe/settings/tabs/Tab.java index 07e1c1cc3cf..e5d717b4960 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/tabs/Tab.java +++ b/app/src/main/java/org/schabi/newpipe/settings/tabs/Tab.java @@ -26,7 +26,6 @@ import org.schabi.newpipe.report.UserAction; import org.schabi.newpipe.util.KioskTranslator; import org.schabi.newpipe.util.ServiceHelper; -import org.schabi.newpipe.util.ThemeHelper; import java.util.Objects; @@ -180,7 +179,7 @@ public String getTabName(final Context context) { @DrawableRes @Override public int getTabIconRes(final Context context) { - return ThemeHelper.resolveResourceIdFromAttr(context, R.attr.ic_blank_page); + return R.drawable.ic_blank_page_white_24dp; } @Override @@ -205,7 +204,7 @@ public String getTabName(final Context context) { @DrawableRes @Override public int getTabIconRes(final Context context) { - return ThemeHelper.resolveResourceIdFromAttr(context, R.attr.ic_channel); + return R.drawable.ic_channel_white_24dp; } @Override @@ -231,7 +230,7 @@ public String getTabName(final Context context) { @DrawableRes @Override public int getTabIconRes(final Context context) { - return ThemeHelper.resolveResourceIdFromAttr(context, R.attr.rss); + return R.drawable.ic_rss_feed_white_24dp; } @Override @@ -256,7 +255,7 @@ public String getTabName(final Context context) { @DrawableRes @Override public int getTabIconRes(final Context context) { - return ThemeHelper.resolveResourceIdFromAttr(context, R.attr.ic_bookmark); + return R.drawable.ic_bookmark_white_24dp; } @Override @@ -281,7 +280,7 @@ public String getTabName(final Context context) { @DrawableRes @Override public int getTabIconRes(final Context context) { - return ThemeHelper.resolveResourceIdFromAttr(context, R.attr.history); + return R.drawable.ic_history_white_24dp; } @Override @@ -401,7 +400,7 @@ public String getTabName(final Context context) { @DrawableRes @Override public int getTabIconRes(final Context context) { - return ThemeHelper.resolveResourceIdFromAttr(context, R.attr.ic_channel); + return R.drawable.ic_channel_white_24dp; } @Override diff --git a/app/src/main/java/org/schabi/newpipe/util/KioskTranslator.java b/app/src/main/java/org/schabi/newpipe/util/KioskTranslator.java index 15d4bf22f3e..910149831d7 100644 --- a/app/src/main/java/org/schabi/newpipe/util/KioskTranslator.java +++ b/app/src/main/java/org/schabi/newpipe/util/KioskTranslator.java @@ -55,13 +55,13 @@ public static int getKioskIcons(final String kioskId, final Context c) { case "Top 50": case "New & hot": case "conferences": - return ThemeHelper.resolveResourceIdFromAttr(c, R.attr.ic_hot); + return R.drawable.ic_whatshot_white_24dp; case "Local": - return ThemeHelper.resolveResourceIdFromAttr(c, R.attr.ic_kiosk_local); + return R.drawable.ic_kiosk_local_white_24dp; case "Recently added": - return ThemeHelper.resolveResourceIdFromAttr(c, R.attr.ic_kiosk_recent); + return R.drawable.ic_kiosk_recent_white_24dp; case "Most liked": - return ThemeHelper.resolveResourceIdFromAttr(c, R.attr.thumbs_up); + return R.drawable.ic_thumb_up_white_24dp; default: return 0; } diff --git a/app/src/main/res/layout/toolbar_layout.xml b/app/src/main/res/layout/toolbar_layout.xml index 5d224bda895..2f116b1b5fd 100644 --- a/app/src/main/res/layout/toolbar_layout.xml +++ b/app/src/main/res/layout/toolbar_layout.xml @@ -15,8 +15,8 @@ android:background="?attr/colorPrimary" android:gravity="center_vertical" android:minHeight="?attr/actionBarSize" - android:theme="@style/ThemeOverlay.AppCompat.ActionBar" - app:popupTheme="@style/ThemeOverlay.AppCompat.ActionBar" + android:theme="@style/ToolbarTheme" + app:popupTheme="@style/ToolbarTheme" app:titleTextAppearance="@style/Toolbar.Title"> diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index ef14bf22cd0..6c899e41fcf 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -115,6 +115,97 @@ @style/PreferenceThemeOverlay.v14.Material + + + + + - From c8f1403fa17eabf42c0ef1e8443f5e85433f8990 Mon Sep 17 00:00:00 2001 From: iamssh Date: Tue, 12 May 2020 11:11:21 +0530 Subject: [PATCH 04/12] copy icons into ToolbarTheme, create PopupTheme --- .../java/org/schabi/newpipe/MainActivity.java | 23 +++-- .../newpipe/download/DownloadDialog.java | 4 +- .../newpipe/fragments/MainFragment.java | 16 ++-- .../fragments/detail/VideoDetailFragment.java | 4 + .../list/playlist/PlaylistFragment.java | 7 +- .../newpipe/player/ServicePlayerActivity.java | 6 +- .../layout/activity_player_queue_control.xml | 5 +- app/src/main/res/layout/error_retry.xml | 1 + .../main/res/layout/stream_quality_item.xml | 7 -- app/src/main/res/layout/toolbar_layout.xml | 1 + app/src/main/res/values/styles.xml | 93 ++++++++++++++++++- 11 files changed, 132 insertions(+), 35 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/MainActivity.java b/app/src/main/java/org/schabi/newpipe/MainActivity.java index dc4e9879232..e631c0eee66 100644 --- a/app/src/main/java/org/schabi/newpipe/MainActivity.java +++ b/app/src/main/java/org/schabi/newpipe/MainActivity.java @@ -23,14 +23,14 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; -import android.content.res.Resources; +//import android.content.res.Resources; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.preference.PreferenceManager; import android.util.Log; -import android.util.TypedValue; +//import android.util.TypedValue; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; @@ -45,7 +45,7 @@ import android.widget.Spinner; import android.widget.TextView; -import androidx.annotation.ColorInt; +//import androidx.annotation.ColorInt; import androidx.annotation.NonNull; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.ActionBarDrawerToggle; @@ -142,12 +142,19 @@ && getSupportFragmentManager().getBackStackEntryCount() == 0) { } Toolbar toolbar = findViewById(R.id.toolbar); - TypedValue typedValue = new TypedValue(); - Resources.Theme theme = this.getTheme(); - theme.resolveAttribute(R.attr.colorPrimary, typedValue, true); - @ColorInt int color = typedValue.data; - toolbar.setBackgroundColor(color); + // TODO Refactor code into a function + toolbar.setPopupTheme( + ThemeHelper.isLightThemeSelected(this) + ? R.style.PopupThemeLight + : R.style.PopupThemeDark + ); +// TypedValue typedValue = new TypedValue(); +// Resources.Theme theme = this.getTheme(); +// theme.resolveAttribute(R.attr.colorPrimary, typedValue, true); +// @ColorInt int color = typedValue.data; +// +// toolbar.setBackgroundColor(color); setSupportActionBar(toolbar); try { diff --git a/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java b/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java index ac6ac071722..f5709448eb8 100644 --- a/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java +++ b/app/src/main/java/org/schabi/newpipe/download/DownloadDialog.java @@ -399,13 +399,13 @@ private void initToolbar(final Toolbar toolbar) { boolean isLight = ThemeHelper.isLightThemeSelected(getActivity()); toolbar.setTitle(R.string.download_dialog_title); - toolbar.setNavigationIcon(isLight ? R.drawable.ic_arrow_back_black_24dp - : R.drawable.ic_arrow_back_white_24dp); + toolbar.setNavigationIcon(R.drawable.ic_arrow_back_white_24dp); toolbar.inflateMenu(R.menu.dialog_url); toolbar.setNavigationOnClickListener(v -> getDialog().dismiss()); toolbar.setNavigationContentDescription(R.string.cancel); okButton = toolbar.findViewById(R.id.okay); + okButton.setTextColor(getResources().getColor(R.color.white)); okButton.setEnabled(false); // disable until the download service connection is done toolbar.setOnMenuItemClickListener(item -> { diff --git a/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java index 9dc0cd98511..affc07edc46 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java @@ -1,10 +1,10 @@ package org.schabi.newpipe.fragments; import android.content.Context; -import android.content.res.Resources; +//import android.content.res.Resources; import android.os.Bundle; import android.util.Log; -import android.util.TypedValue; +//import android.util.TypedValue; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -12,7 +12,7 @@ import android.view.View; import android.view.ViewGroup; -import androidx.annotation.ColorInt; +//import androidx.annotation.ColorInt; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.ActionBar; @@ -170,11 +170,11 @@ private void setupTabs() { private void updateTabsIconAndDescription() { - TypedValue typedValue = new TypedValue(); - Resources.Theme theme = getContext().getTheme(); - theme.resolveAttribute(R.attr.colorPrimary, typedValue, true); - @ColorInt int color = typedValue.data; - tabLayout.setBackgroundColor(color); +// TypedValue typedValue = new TypedValue(); +// Resources.Theme theme = getContext().getTheme(); +// theme.resolveAttribute(R.attr.colorPrimary, typedValue, true); +// @ColorInt int color = typedValue.data; +// tabLayout.setBackgroundColor(color); for (int i = 0; i < tabsList.size(); i++) { final TabLayout.Tab tabToSet = tabLayout.getTabAt(i); diff --git a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java index eba77847bf2..e86119440cf 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java @@ -4,6 +4,7 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; +//import android.graphics.Color; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -708,6 +709,9 @@ private void setupActionBar(final StreamInfo info) { public void onItemSelected(final AdapterView parent, final View view, final int position, final long id) { selectedVideoStreamIndex = position; + RelativeLayout r = (RelativeLayout) parent.getChildAt(0); + ((TextView) r.getChildAt(1)).setTextColor(getResources().getColor(R.color.white)); + ((TextView) r.getChildAt(2)).setTextColor(getResources().getColor(R.color.white)); } @Override diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java index 93df98c9727..ad41ccec69a 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java @@ -43,7 +43,7 @@ import org.schabi.newpipe.util.NavigationHelper; import org.schabi.newpipe.util.ShareUtils; import org.schabi.newpipe.util.StreamDialogEntry; -import org.schabi.newpipe.util.ThemeHelper; +//import org.schabi.newpipe.util.ThemeHelper; import java.util.ArrayList; import java.util.List; @@ -471,12 +471,13 @@ private void updateBookmarkButtons() { } final int iconAttr = playlistEntity == null - ? R.attr.ic_playlist_add : R.attr.ic_playlist_check; + ? R.drawable.ic_playlist_add_white_24dp + : R.drawable.ic_playlist_add_check_white_24dp; final int titleRes = playlistEntity == null ? R.string.bookmark_playlist : R.string.unbookmark_playlist; - playlistBookmarkButton.setIcon(ThemeHelper.resolveResourceIdFromAttr(activity, iconAttr)); + playlistBookmarkButton.setIcon(iconAttr); playlistBookmarkButton.setTitle(titleRes); } } diff --git a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java index 6841389f467..7d1b191ee56 100644 --- a/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java +++ b/app/src/main/java/org/schabi/newpipe/player/ServicePlayerActivity.java @@ -716,10 +716,8 @@ private void onMaybeMuteChanged() { //2) Icon change accordingly to current App Theme // using rootView.getContext() because getApplicationContext() didn't work item.setIcon(player.isMuted() - ? ThemeHelper.resolveResourceIdFromAttr(rootView.getContext(), - R.attr.volume_off) - : ThemeHelper.resolveResourceIdFromAttr(rootView.getContext(), - R.attr.volume_on)); + ? R.drawable.ic_volume_off_white_24dp + : R.drawable.ic_volume_up_white_24dp); } } } diff --git a/app/src/main/res/layout/activity_player_queue_control.xml b/app/src/main/res/layout/activity_player_queue_control.xml index d17a7007a51..77d9ae119ef 100644 --- a/app/src/main/res/layout/activity_player_queue_control.xml +++ b/app/src/main/res/layout/activity_player_queue_control.xml @@ -12,14 +12,15 @@ android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="wrap_content" - android:theme="@style/ThemeOverlay.AppCompat.ActionBar" - app:popupTheme="@style/ThemeOverlay.AppCompat.ActionBar"> + android:theme="@style/ToolbarTheme" + app:popupTheme="@style/ToolbarTheme"> diff --git a/app/src/main/res/layout/error_retry.xml b/app/src/main/res/layout/error_retry.xml index 567012f1ebd..84575aa827b 100644 --- a/app/src/main/res/layout/error_retry.xml +++ b/app/src/main/res/layout/error_retry.xml @@ -27,6 +27,7 @@ android:textAlignment="center" android:textAllCaps="true" android:textAppearance="@style/TextAppearance.AppCompat.Body1" + android:background="?attr/colorPrimary" android:textSize="16sp" android:theme="@style/RedButton"/> diff --git a/app/src/main/res/layout/stream_quality_item.xml b/app/src/main/res/layout/stream_quality_item.xml index 851e5390ce6..76f52a2a0ba 100644 --- a/app/src/main/res/layout/stream_quality_item.xml +++ b/app/src/main/res/layout/stream_quality_item.xml @@ -3,7 +3,6 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:background="?attr/colorPrimary" android:layout_height="48dp"> @@ -65,8 +60,6 @@ android:textAppearance="@style/TextAppearance.AppCompat.Caption" android:textSize="12sp" android:visibility="gone" - android:textColor="@color/white" - android:background="?attr/colorPrimary" tools:ignore="RtlHardcoded" tools:text="123.4 MB" tools:visibility="visible"/> diff --git a/app/src/main/res/layout/toolbar_layout.xml b/app/src/main/res/layout/toolbar_layout.xml index 2f116b1b5fd..71a6da6701b 100644 --- a/app/src/main/res/layout/toolbar_layout.xml +++ b/app/src/main/res/layout/toolbar_layout.xml @@ -15,6 +15,7 @@ android:background="?attr/colorPrimary" android:gravity="center_vertical" android:minHeight="?attr/actionBarSize" + app:titleTextColor="@color/white" android:theme="@style/ToolbarTheme" app:popupTheme="@style/ToolbarTheme" app:titleTextAppearance="@style/Toolbar.Title"> diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index f53f3033bd7..66ef5bae735 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -120,9 +120,100 @@ @android:color/white - + + + + + + + + + - - + + + + - - - -