| Index: chrome/android/java_staging/src/org/chromium/chrome/browser/ntp/RecentTabsGroupView.java
|
| diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/ntp/RecentTabsGroupView.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/ntp/RecentTabsGroupView.java
|
| deleted file mode 100644
|
| index e1454bd98356229fbd0055993a81fa3393aba42b..0000000000000000000000000000000000000000
|
| --- a/chrome/android/java_staging/src/org/chromium/chrome/browser/ntp/RecentTabsGroupView.java
|
| +++ /dev/null
|
| @@ -1,214 +0,0 @@
|
| -// 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.ntp;
|
| -
|
| -import android.content.Context;
|
| -import android.content.res.Resources;
|
| -import android.graphics.drawable.LevelListDrawable;
|
| -import android.util.AttributeSet;
|
| -import android.view.View;
|
| -import android.widget.ImageView;
|
| -import android.widget.RelativeLayout;
|
| -import android.widget.TextView;
|
| -
|
| -import org.chromium.chrome.R;
|
| -import org.chromium.chrome.browser.ForeignSessionHelper.ForeignSession;
|
| -import org.chromium.chrome.browser.widget.TintedDrawable;
|
| -import org.chromium.ui.base.DeviceFormFactor;
|
| -
|
| -import java.util.concurrent.TimeUnit;
|
| -
|
| -/**
|
| - * Header view shown above each group of items on the Recent Tabs page. Shows the name of the
|
| - * group (e.g. "Recently closed" or "Jim's Laptop"), an icon, last synced time, and a button to
|
| - * expand or collapse the group.
|
| - */
|
| -public class RecentTabsGroupView extends RelativeLayout {
|
| -
|
| - /** Drawable levels for the device type icon and the expand/collapse arrow. */
|
| - private static final int DRAWABLE_LEVEL_COLLAPSED = 0;
|
| - private static final int DRAWABLE_LEVEL_EXPANDED = 1;
|
| -
|
| - private ImageView mDeviceIcon;
|
| - private ImageView mExpandCollapseIcon;
|
| - private TextView mDeviceLabel;
|
| - private TextView mTimeLabel;
|
| - private long mInitializationTimestamp;
|
| - private int mDeviceLabelExpandedColor;
|
| - private int mDeviceLabelCollapsedColor;
|
| - private int mTimeLabelExpandedColor;
|
| - private int mTimeLabelCollapsedColor;
|
| -
|
| - /**
|
| - * Constructor for inflating from XML.
|
| - *
|
| - * @param context The context this view will work in.
|
| - * @param attrs The attribute set for this view.
|
| - */
|
| - public RecentTabsGroupView(Context context, AttributeSet attrs) {
|
| - super(context, attrs);
|
| - Resources res = getResources();
|
| - mDeviceLabelExpandedColor = res.getColor(R.color.light_active_color);
|
| - mDeviceLabelCollapsedColor = res.getColor(R.color.ntp_list_header_text);
|
| - mTimeLabelExpandedColor = res.getColor(R.color.ntp_list_header_subtext_active);
|
| - mTimeLabelCollapsedColor = res.getColor(R.color.ntp_list_header_subtext);
|
| - }
|
| -
|
| - @Override
|
| - public void onFinishInflate() {
|
| - super.onFinishInflate();
|
| - mDeviceIcon = (ImageView) findViewById(R.id.device_icon);
|
| - mTimeLabel = (TextView) findViewById(R.id.time_label);
|
| - mDeviceLabel = (TextView) findViewById(R.id.device_label);
|
| - mExpandCollapseIcon = (ImageView) findViewById(R.id.expand_collapse_icon);
|
| -
|
| - // Create drawable for expand/collapse arrow.
|
| - LevelListDrawable collapseIcon = new LevelListDrawable();
|
| - collapseIcon.addLevel(DRAWABLE_LEVEL_COLLAPSED, DRAWABLE_LEVEL_COLLAPSED,
|
| - TintedDrawable.constructTintedDrawable(getResources(), R.drawable.ic_expand));
|
| - TintedDrawable collapse =
|
| - TintedDrawable.constructTintedDrawable(getResources(), R.drawable.ic_collapse);
|
| - collapse.setTint(getResources().getColorStateList(R.color.blue_mode_tint));
|
| - collapseIcon.addLevel(DRAWABLE_LEVEL_EXPANDED, DRAWABLE_LEVEL_EXPANDED, collapse);
|
| - mExpandCollapseIcon.setImageDrawable(collapseIcon);
|
| - }
|
| -
|
| - /**
|
| - * Initialize the state of the group view. Should be called immediatly after object creation.
|
| - *
|
| - * @param initializationTimestamp The timestamp to compute the time since last session sync.
|
| - */
|
| - public void initialize(long initializationTimestamp) {
|
| - mInitializationTimestamp = initializationTimestamp;
|
| - }
|
| -
|
| - /**
|
| - * Configures the view for currently open tabs.
|
| - *
|
| - * @param isExpanded Whether the view is expanded or collapsed.
|
| - */
|
| - public void configureForCurrentlyOpenTabs(boolean isExpanded) {
|
| - mDeviceIcon.setVisibility(View.VISIBLE);
|
| - mDeviceIcon.setImageResource(DeviceFormFactor.isTablet(getContext())
|
| - ? R.drawable.recent_tablet : R.drawable.recent_phone);
|
| - String title = getResources().getString(R.string.recent_tabs_this_device);
|
| - mDeviceLabel.setText(title);
|
| - setTimeLabelVisibility(View.GONE);
|
| - configureExpandedCollapsed(isExpanded);
|
| - }
|
| -
|
| - /**
|
| - * Configures the view for a foreign session.
|
| - *
|
| - * @param session The session to configure the view for.
|
| - * @param isExpanded Whether the view is expanded or collapsed.
|
| - */
|
| - public void configureForForeignSession(ForeignSession session, boolean isExpanded) {
|
| - mDeviceIcon.setVisibility(View.VISIBLE);
|
| - mDeviceLabel.setText(session.name);
|
| - setTimeLabelVisibility(View.VISIBLE);
|
| - mTimeLabel.setText(getTimeString(session));
|
| - switch (session.deviceType) {
|
| - case ForeignSession.DEVICE_TYPE_PHONE:
|
| - mDeviceIcon.setImageResource(R.drawable.recent_phone);
|
| - break;
|
| - case ForeignSession.DEVICE_TYPE_TABLET:
|
| - mDeviceIcon.setImageResource(R.drawable.recent_tablet);
|
| - break;
|
| - default:
|
| - mDeviceIcon.setImageResource(R.drawable.recent_laptop);
|
| - break;
|
| - }
|
| - configureExpandedCollapsed(isExpanded);
|
| - }
|
| -
|
| - /**
|
| - * Configures the view for the recently closed tabs group.
|
| - *
|
| - * @param isExpanded Whether the view is expanded or collapsed.
|
| - */
|
| - public void configureForRecentlyClosedTabs(boolean isExpanded) {
|
| - mDeviceIcon.setVisibility(View.VISIBLE);
|
| - mDeviceIcon.setImageResource(R.drawable.recent_recently_closed);
|
| - mDeviceLabel.setText(R.string.recently_closed);
|
| - setTimeLabelVisibility(View.GONE);
|
| - configureExpandedCollapsed(isExpanded);
|
| - }
|
| -
|
| - /**
|
| - * Configures the view for the sync promo.
|
| - *
|
| - * @param isExpanded Whether the view is expanded or collapsed.
|
| - */
|
| - public void configureForSyncPromo(boolean isExpanded) {
|
| - mDeviceIcon.setVisibility(View.VISIBLE);
|
| - mDeviceIcon.setImageResource(R.drawable.recent_laptop);
|
| - mDeviceLabel.setText(R.string.ntp_recent_tabs_sync_promo_title);
|
| - setTimeLabelVisibility(View.GONE);
|
| - configureExpandedCollapsed(isExpanded);
|
| - }
|
| -
|
| - private void configureExpandedCollapsed(boolean isExpanded) {
|
| - String description = getResources().getString(isExpanded
|
| - ? R.string.ntp_recent_tabs_accessibility_expanded_group
|
| - : R.string.ntp_recent_tabs_accessibility_collapsed_group);
|
| - mExpandCollapseIcon.setContentDescription(description);
|
| -
|
| - int level = isExpanded ? DRAWABLE_LEVEL_EXPANDED : DRAWABLE_LEVEL_COLLAPSED;
|
| - mExpandCollapseIcon.getDrawable().setLevel(level);
|
| - mDeviceIcon.setActivated(isExpanded);
|
| -
|
| - mDeviceLabel.setTextColor(isExpanded
|
| - ? mDeviceLabelExpandedColor
|
| - : mDeviceLabelCollapsedColor);
|
| - mTimeLabel.setTextColor(isExpanded ? mTimeLabelExpandedColor : mTimeLabelCollapsedColor);
|
| - }
|
| -
|
| - private String getTimeString(ForeignSession session) {
|
| - long sessionModifiedTimeSeconds =
|
| - TimeUnit.SECONDS.convert(session.modifiedTime, TimeUnit.MILLISECONDS);
|
| - long timeDelta = mInitializationTimestamp - sessionModifiedTimeSeconds;
|
| - timeDelta = timeDelta > 0 ? timeDelta : 0;
|
| -
|
| - long daysElapsed = timeDelta / (24L * 60L * 60L);
|
| - long hoursElapsed = timeDelta / (60L * 60L);
|
| - long minutesElapsed = timeDelta / 60L;
|
| -
|
| - Resources resources = getContext().getResources();
|
| - if (daysElapsed > 0L) {
|
| - return resources.getString(R.string.ntp_recent_tabs_last_synced_days, daysElapsed);
|
| - } else if (hoursElapsed > 0L) {
|
| - return resources.getString(R.string.ntp_recent_tabs_last_synced_hours, hoursElapsed);
|
| - } else if (minutesElapsed > 0L) {
|
| - return resources.getString(
|
| - R.string.ntp_recent_tabs_last_synced_minutes, minutesElapsed);
|
| - } else {
|
| - return resources.getString(R.string.ntp_recent_tabs_last_synced_just_now);
|
| - }
|
| - }
|
| -
|
| - /**
|
| - * Shows or hides the time label (e.g. "Last synced: just now") and adjusts the positions of the
|
| - * icon and device label. In particular, the icon and device label are top-aligned when the time
|
| - * is visible, but are vertically centered when the time is gone.
|
| - */
|
| - private void setTimeLabelVisibility(int visibility) {
|
| - if (mTimeLabel.getVisibility() == visibility) return;
|
| - mTimeLabel.setVisibility(visibility);
|
| - if (visibility == View.GONE) {
|
| - replaceRule(mDeviceIcon, ALIGN_PARENT_TOP, CENTER_VERTICAL);
|
| - replaceRule(mDeviceLabel, ALIGN_PARENT_TOP, CENTER_VERTICAL);
|
| - } else {
|
| - replaceRule(mDeviceIcon, CENTER_VERTICAL, ALIGN_PARENT_TOP);
|
| - replaceRule(mDeviceLabel, CENTER_VERTICAL, ALIGN_PARENT_TOP);
|
| - }
|
| - }
|
| -
|
| - private static void replaceRule(View view, int oldRule, int newRule) {
|
| - RelativeLayout.LayoutParams lp = ((RelativeLayout.LayoutParams) view.getLayoutParams());
|
| - lp.addRule(oldRule, 0);
|
| - lp.addRule(newRule);
|
| - }
|
| -}
|
|
|