Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4276)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java

Issue 2682593002: Refactor ContentViewClient (4/6) (Closed)
Patch Set: . Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java
new file mode 100644
index 0000000000000000000000000000000000000000..631a2feec6474c7433cf4e5feb7363659d4b0132
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndroidDelegate.java
@@ -0,0 +1,76 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.tab;
+
+import android.content.ActivityNotFoundException;
+import android.content.Intent;
+import android.view.ViewGroup;
+
+import org.chromium.base.Log;
+import org.chromium.base.metrics.RecordUserAction;
+import org.chromium.ui.base.ViewAndroidDelegate;
+
+/**
+ * Implementation of the abstract class {@link ViewAndroidDelegate} for Chrome.
+ */
+class TabViewAndroidDelegate extends ViewAndroidDelegate {
+ /** Used for logging. */
+ private static final String TAG = "TabVAD";
+
+ private final Tab mTab;
+ private final ViewGroup mContainerView;
+
+ TabViewAndroidDelegate(Tab tab, ViewGroup containerView) {
+ mTab = tab;
+ mContainerView = containerView;
+ }
+
+ @Override
+ public void onBackgroundColorChanged(int color) {
+ mTab.onBackgroundColorChanged(color);
+ }
+
+ @Override
+ public void onTopControlsChanged(float topControlsOffsetY, float topContentOffsetY) {
+ mTab.onOffsetsChanged(topControlsOffsetY, Float.NaN, topContentOffsetY);
+ }
+
+ @Override
+ public void onBottomControlsChanged(float bottomControlsOffsetY, float bottomContentOffsetY) {
+ mTab.onOffsetsChanged(Float.NaN, bottomControlsOffsetY, Float.NaN);
+ }
+
+ @Override
+ public void onStartContentIntent(String intentUrl, boolean isMainFrame) {
+ Intent intent;
+ // Perform generic parsing of the URI to turn it into an Intent.
+ try {
+ intent = Intent.parseUri(intentUrl, Intent.URI_INTENT_SCHEME);
+
+ String scheme = intent.getScheme();
+ if (!isAcceptableContentIntentScheme(scheme)) {
+ Log.w(TAG, "Invalid scheme for URI %s", intentUrl);
+ return;
+ }
+
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ } catch (Exception ex) {
+ Log.w(TAG, "Bad URI %s", intentUrl, ex);
+ return;
+ }
+
+ try {
+ RecordUserAction.record("Android.ContentDetectorActivated");
+ mTab.getActivity().startActivity(intent);
+ } catch (ActivityNotFoundException ex) {
+ Log.w(TAG, "No application can handle %s", intentUrl);
+ }
+ }
+
+ @Override
+ public ViewGroup getContainerView() {
+ return mContainerView;
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698