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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/ntp/UiConfig.java

Issue 2167973004: Revert of 📰 Adjust the card display depending on the screen width. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ZineTabletUI
Patch Set: Created 4 years, 5 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 package org.chromium.chrome.browser.ntp;
6
7 import android.content.Context;
8 import android.support.annotation.IntDef;
9 import android.view.View;
10
11 import org.chromium.base.Log;
12 import org.chromium.ui.widget.Toast;
13
14 import java.lang.annotation.Retention;
15 import java.lang.annotation.RetentionPolicy;
16 import java.util.ArrayList;
17 import java.util.List;
18
19 /**
20 * Exposes general configuration info about the NTP UI.
21 */
22 public class UiConfig {
23 /** The different supported UI setups. Observers can register to be notified of changes.*/
24 @Retention(RetentionPolicy.SOURCE)
25 @IntDef({DISPLAY_STYLE_UNDEFINED, DISPLAY_STYLE_NARROW, DISPLAY_STYLE_REGULA R,
26 DISPLAY_STYLE_WIDE})
27 public @interface DisplayStyle {}
28 public static final int DISPLAY_STYLE_UNDEFINED = -1;
29 public static final int DISPLAY_STYLE_NARROW = 0;
30 public static final int DISPLAY_STYLE_REGULAR = 1;
31 public static final int DISPLAY_STYLE_WIDE = 2;
32
33 private static final int REGULAR_CARD_MIN_WIDTH_DP = 360;
34 private static final int WIDE_CARD_MIN_WIDTH_DP = 600;
35
36 private static final String TAG = "Ntp";
37 private static final boolean DEBUG = false;
38
39 @DisplayStyle
40 private int mCurrentDisplayStyle;
41
42 private final List<DisplayStyleObserver> mObservers = new ArrayList<>();
43 private final Context mContext;
44
45 /**
46 * @param referenceView the View we observe to deduce the configuration from .
47 */
48 public UiConfig(View referenceView) {
49 mContext = referenceView.getContext();
50 mCurrentDisplayStyle = computeDisplayStyleForCurrentConfig();
51
52 referenceView.addOnAttachStateChangeListener(new View.OnAttachStateChang eListener() {
53 @Override
54 public void onViewAttachedToWindow(View v) {
55 updateDisplayStyle();
56 }
57
58 @Override
59 public void onViewDetachedFromWindow(View v) {}
60 });
61 }
62
63 /**
64 * Registers a {@link DisplayStyleObserver}. It will be notified right away with the current
65 * display style.
66 */
67 public void addObserver(DisplayStyleObserver observer) {
68 mObservers.add(observer);
69 observer.onDisplayStyleChanged(mCurrentDisplayStyle);
70 }
71
72 /**
73 * Refresh the display style, notify observers of changes.
74 */
75 public void updateDisplayStyle() {
76 @DisplayStyle
77 int newDisplayStyle = computeDisplayStyleForCurrentConfig();
78
79 if (newDisplayStyle == mCurrentDisplayStyle) return;
80
81 mCurrentDisplayStyle = newDisplayStyle;
82 for (DisplayStyleObserver observer : mObservers) {
83 observer.onDisplayStyleChanged(newDisplayStyle);
84 }
85 }
86
87 @DisplayStyle
88 private int computeDisplayStyleForCurrentConfig() {
89 int widthDp = mContext.getResources().getConfiguration().screenWidthDp;
90
91 String debugString;
92
93 @DisplayStyle
94 int newDisplayStyle;
95 if (widthDp < REGULAR_CARD_MIN_WIDTH_DP) {
96 newDisplayStyle = DISPLAY_STYLE_NARROW;
97 if (DEBUG) debugString = String.format("DISPLAY_STYLE_NARROW (w=%ddp )", widthDp);
98 } else if (widthDp >= WIDE_CARD_MIN_WIDTH_DP) {
99 newDisplayStyle = DISPLAY_STYLE_WIDE;
100 if (DEBUG) debugString = String.format("DISPLAY_STYLE_WIDE (w=%ddp)" , widthDp);
101 } else {
102 newDisplayStyle = DISPLAY_STYLE_REGULAR;
103 if (DEBUG) debugString = String.format("DISPLAY_STYLE_REGULAR (w=%dd p)", widthDp);
104 }
105
106 if (DEBUG) {
107 Log.d(TAG, debugString);
108 Toast.makeText(mContext, debugString, Toast.LENGTH_SHORT).show();
109 }
110
111 return newDisplayStyle;
112 }
113 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698