| Index: chrome/android/java_staging/src/org/chromium/chrome/browser/dom_distiller/ReaderModeActivityDelegate.java
|
| diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/dom_distiller/ReaderModeActivityDelegate.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/dom_distiller/ReaderModeActivityDelegate.java
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..bcf087ecfef68a36e8ae42317e305b57e040c605
|
| --- /dev/null
|
| +++ b/chrome/android/java_staging/src/org/chromium/chrome/browser/dom_distiller/ReaderModeActivityDelegate.java
|
| @@ -0,0 +1,90 @@
|
| +// Copyright 2015 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.dom_distiller;
|
| +
|
| +import android.view.LayoutInflater;
|
| +import android.view.View;
|
| +import android.view.ViewGroup;
|
| +
|
| +import com.google.android.apps.chrome.R;
|
| +
|
| +import org.chromium.chrome.browser.ChromeActivity;
|
| +import org.chromium.chrome.browser.widget.ReaderModeControl;
|
| +import org.chromium.ui.resources.dynamics.DynamicResourceLoader;
|
| +
|
| +
|
| +/**
|
| + * Manager for the Reader Mode feature.
|
| + * This class keeps track of the status of Reader Mode and coordinates the control
|
| + * with the layout.
|
| + */
|
| +public class ReaderModeActivityDelegate {
|
| + private static final String TAG = "ReaderModeActivityDelegate";
|
| +
|
| + private DynamicResourceLoader mResourceLoader;
|
| + private ReaderModeControl mControl;
|
| + private final ChromeActivity mActivity;
|
| + private ViewGroup mParentView;
|
| +
|
| + /**
|
| + * Constructs the manager for the given activity, and will attach views to the given parent.
|
| + * @param activity The {@code ChromeActivity} in use.
|
| + */
|
| + public ReaderModeActivityDelegate(ChromeActivity activity) {
|
| + mActivity = activity;
|
| + }
|
| +
|
| + /**
|
| + * Initializes this manager. Must be called before {@link #getReaderModeControl()}.
|
| + * @param parentView The parent view to attach Reader Mode UX to.
|
| + */
|
| + public void initialize(ViewGroup parentView) {
|
| + mParentView = parentView;
|
| + }
|
| +
|
| + /**
|
| + * Destroys the Reader Mode activity delegate.
|
| + */
|
| + public void destroy() {
|
| + if (mControl != null) {
|
| + ((ViewGroup) mControl.getParent()).removeView(mControl);
|
| + mControl = null;
|
| + if (mResourceLoader != null) {
|
| + mResourceLoader.unregisterResource(R.id.contextual_search_view);
|
| + }
|
| + }
|
| + mParentView = null;
|
| + }
|
| +
|
| + /**
|
| + * @param resourceLoader The {@link DynamicResourceLoader} to register and unregister the view.
|
| + */
|
| + public void setDynamicResourceLoader(DynamicResourceLoader resourceLoader) {
|
| + mResourceLoader = resourceLoader;
|
| + if (mControl != null) {
|
| + mResourceLoader.registerResource(R.id.reader_mode_view,
|
| + mControl.getResourceAdapter());
|
| + }
|
| + }
|
| +
|
| + /**
|
| + * Inflates the Reader Mode control, if needed.
|
| + */
|
| + public ReaderModeControl getReaderModeControl() {
|
| + assert mParentView != null;
|
| + if (mControl == null) {
|
| + LayoutInflater.from(mActivity).inflate(R.layout.reader_mode_control, mParentView);
|
| + mControl = (ReaderModeControl)
|
| + mParentView.findViewById(R.id.reader_mode_view);
|
| + if (mResourceLoader != null) {
|
| + mResourceLoader.registerResource(R.id.reader_mode_view,
|
| + mControl.getResourceAdapter());
|
| + }
|
| + }
|
| + assert mControl != null;
|
| + mControl.setVisibility(View.INVISIBLE);
|
| + return mControl;
|
| + }
|
| +}
|
|
|