Add dark mode layout for custom ads popup on android.

Also added functionality to switch between dark/light modes on theme
setting change.
fix https://github.com/brave/brave-browser/issues/16350
This commit is contained in:
Aleksey Seren
2021-07-09 22:12:36 +07:00
parent 22e0b3b9d1
commit 07f1a8a6ef
4 changed files with 80 additions and 1 deletions
+2
View File
@@ -535,6 +535,7 @@ brave_java_resources = [
"java/res/drawable/ac_radio_group_bg.xml",
"java/res/drawable/ac_text_selector.xml",
"java/res/drawable/ads_custom_notification_border.xml",
"java/res/drawable/ads_custom_notification_border_dark.xml",
"java/res/drawable/bat_ads_close_button.xml",
"java/res/drawable/bat_ads_logo_button.xml",
"java/res/drawable/bat_panel_gradient.xml",
@@ -727,6 +728,7 @@ brave_java_resources = [
"java/res/layout/bottom_toolbar_menu_button.xml",
"java/res/layout/bottom_toolbar_tab_switcher.xml",
"java/res/layout/brave_ads_custom_notification.xml",
"java/res/layout/brave_ads_custom_notification_dark.xml",
"java/res/layout/brave_ads_existing_user_dialog_layout.xml",
"java/res/layout/brave_ads_new_user_dialog_layout.xml",
"java/res/layout/brave_bookmark_toolbar.xml",
@@ -0,0 +1,5 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<solid android:color="#202327" />
<stroke android:width="1dip" android:color="#3f4145"/>
<corners android:radius="4dp"/>
</shape>
@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:padding="2dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ads_custom_notification_border_dark"
android:id="@+id/brave_ads_custom_notification_popup">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="2dp"
android:orientation="horizontal"
>
<TextView
android:id="@+id/brave_ads_custom_notification_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/poppins_medium"
android:textColor="#e3e6ec"
android:textSize="14sp"
android:paddingStart="13dp"
android:paddingTop="8dp"/>
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_gravity="center"
android:src="@drawable/bat_ads_logo_button"
android:paddingTop="2dp"
android:paddingEnd="2dp"
android:id="@+id/brave_ads_logo" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="2dp"
android:orientation="horizontal">
<TextView
android:id="@+id/brave_ads_custom_notification_body"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/poppins_light"
android:textColor="#d7dbe2"
android:paddingEnd="2dp"
android:paddingStart="13dp"
android:layout_marginBottom="7dp"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
@@ -29,6 +29,7 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.BraveAdsNativeHelper;
import org.chromium.chrome.browser.ChromeTabbedActivity;
import org.chromium.chrome.browser.app.BraveActivity;
import org.chromium.chrome.browser.night_mode.GlobalNightModeStateProviderHolder;
import org.chromium.chrome.browser.notifications.BraveOnboardingNotification;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.tab.TabLaunchType;
@@ -57,7 +58,11 @@ public class BraveAdsNotificationDialog {
mNotificationId = notificationId;
LayoutInflater inflater = LayoutInflater.from(context);
b.setView(inflater.inflate(R.layout.brave_ads_custom_notification, null));
if (shouldUseDarkModeTheme()) {
b.setView(inflater.inflate(R.layout.brave_ads_custom_notification_dark, null));
} else {
b.setView(inflater.inflate(R.layout.brave_ads_custom_notification, null));
}
mAdsDialog = b.create();
if (mNotificationId != null) {
@@ -178,6 +183,10 @@ public class BraveAdsNotificationDialog {
}
}
private static boolean shouldUseDarkModeTheme() {
return GlobalNightModeStateProviderHolder.getInstance().isInNightMode();
}
/**
* Converts a px value to a dp value.
*/