chromium/components/content_capture/android/java/src/org/chromium/components/content_capture/ContentCaptureFrame.java

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package org.chromium.components.content_capture;

import android.graphics.Rect;

import androidx.annotation.VisibleForTesting;

import org.jni_zero.CalledByNative;

/** The class is Java's representative of components/content_capture/browser/content_capture_frame.h */
public class ContentCaptureFrame extends ContentCaptureDataBase {
    private final String mUrl;
    private final String mTitle;
    private final String mFavicon;

    @CalledByNative
    @VisibleForTesting
    public static ContentCaptureFrame createContentCaptureFrame(
            long id,
            String value,
            int x,
            int y,
            int width,
            int height,
            String title,
            String favicon) {
        return new ContentCaptureFrame(id, value, x, y, width, height, title, favicon);
    }

    private ContentCaptureFrame(
            long id,
            String value,
            int x,
            int y,
            int width,
            int height,
            String title,
            String favicon) {
        super(id, new Rect(x, y, x + width, y + height));
        mUrl = value;
        mTitle = title;
        mFavicon = favicon;
    }

    public String getUrl() {
        return mUrl;
    }

    public String getTitle() {
        return mTitle;
    }

    public String getFavicon() {
        return mFavicon;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder(super.toString());
        sb.append(" Url:");
        sb.append(getUrl());
        sb.append(" Title:");
        sb.append(getTitle());
        return sb.toString();
    }

    @Override
    public String getText() {
        return getTitle();
    }
}