Add play service mojom code in toolbar for ref

Remove dcheck for tab webcontents
This commit is contained in:
deeppandya
2023-01-19 11:17:49 -05:00
parent 7ed1b0e319
commit fd228dc4f9
2 changed files with 32 additions and 1 deletions
@@ -50,6 +50,7 @@ import androidx.core.content.ContextCompat;
import androidx.core.content.res.ResourcesCompat;
import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.BraveFeatureList;
import org.chromium.base.BravePreferenceKeys;
import org.chromium.base.BraveReflectionUtil;
import org.chromium.base.ContextUtils;
@@ -75,6 +76,7 @@ import org.chromium.chrome.browser.custom_layout.popup_window_tooltip.PopupWindo
import org.chromium.chrome.browser.customtabs.CustomTabActivity;
import org.chromium.chrome.browser.customtabs.features.toolbar.CustomTabToolbar;
import org.chromium.chrome.browser.dialogs.BraveAdsSignupDialog;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.lifecycle.ConfigurationChangedObserver;
import org.chromium.chrome.browser.local_database.BraveStatsTable;
import org.chromium.chrome.browser.local_database.DatabaseHelper;
@@ -86,6 +88,7 @@ import org.chromium.chrome.browser.onboarding.OnboardingPrefManager;
import org.chromium.chrome.browser.onboarding.SearchActivity;
import org.chromium.chrome.browser.onboarding.v2.HighlightItem;
import org.chromium.chrome.browser.onboarding.v2.HighlightView;
import org.chromium.chrome.browser.playlist.PlaylistServiceFactoryAndroid;
import org.chromium.chrome.browser.preferences.BravePref;
import org.chromium.chrome.browser.preferences.BravePrefServiceBridge;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
@@ -128,6 +131,9 @@ import org.chromium.components.user_prefs.UserPrefs;
import org.chromium.content_public.browser.NavigationHandle;
import org.chromium.mojo.bindings.ConnectionErrorHandler;
import org.chromium.mojo.system.MojoException;
import org.chromium.playlist.mojom.Playlist;
import org.chromium.playlist.mojom.PlaylistItem;
import org.chromium.playlist.mojom.PlaylistService;
import org.chromium.ui.UiUtils;
import org.chromium.ui.base.ViewUtils;
import org.chromium.ui.interpolators.BakedBezierInterpolator;
@@ -200,6 +206,7 @@ public abstract class BraveToolbarLayoutImpl extends ToolbarLayout
Collections.synchronizedSet(new HashSet<Integer>());
private CookieListOptInPageAndroidHandler mCookieListOptInPageAndroidHandler;
private PlaylistService mPlaylistService;
private enum BIGTECH_COMPANY { Google, Facebook, Amazon }
@@ -215,6 +222,10 @@ public abstract class BraveToolbarLayoutImpl extends ToolbarLayout
if (mCookieListOptInPageAndroidHandler != null) {
mCookieListOptInPageAndroidHandler.close();
}
if (ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_PLAYLIST)
&& mPlaylistService != null) {
mPlaylistService.close();
}
super.destroy();
if (mBraveRewardsNativeWorker != null) {
mBraveRewardsNativeWorker.RemoveObserver(this);
@@ -356,6 +367,10 @@ public abstract class BraveToolbarLayoutImpl extends ToolbarLayout
public void onConnectionError(MojoException e) {
mCookieListOptInPageAndroidHandler = null;
initCookieListOptInPageAndroidHandler();
if (ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_PLAYLIST)) {
mPlaylistService = null;
initPlaylistService();
}
}
private void initCookieListOptInPageAndroidHandler() {
@@ -368,10 +383,21 @@ public abstract class BraveToolbarLayoutImpl extends ToolbarLayout
this);
}
private void initPlaylistService() {
if (mPlaylistService != null) {
return;
}
mPlaylistService = PlaylistServiceFactoryAndroid.getInstance().getPlaylistService(this);
}
@Override
protected void onNativeLibraryReady() {
super.onNativeLibraryReady();
initCookieListOptInPageAndroidHandler();
if (ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_PLAYLIST)) {
initPlaylistService();
}
mBraveShieldsContentSettings = BraveShieldsContentSettings.getInstance();
mBraveShieldsContentSettings.addObserver(mBraveShieldsContentSettingsObserver);
@@ -487,6 +513,12 @@ public abstract class BraveToolbarLayoutImpl extends ToolbarLayout
&& mBraveRewardsNativeWorker.IsSupported()) {
showBraveRewardsOnboardingModal();
}
if (ChromeFeatureList.isEnabled(BraveFeatureList.BRAVE_PLAYLIST)
&& !tab.getUrl().getSpec().startsWith(UrlConstants.CHROME_SCHEME)
&& !UrlUtilities.isNTPUrl(tab.getUrl().getSpec())
&& tab.getUrl().domainIs(YOUTUBE_DOMAIN) && mPlaylistService != null) {
// TODO DEEP : find contents from the page and show the playlist button
}
}
@Override
@@ -25,7 +25,6 @@ void BraveShieldsWebContentsObserver::DispatchBlockedEventForWebContents(
int tabId = 0;
TabAndroid* tab = TabAndroid::FromWebContents(web_contents);
DCHECK(tab);
if (tab) {
tabId = tab->GetAndroidId();
}