| Index: ui/gfx/android/shared_device_display_info.h
 | 
| diff --git a/ui/gfx/android/shared_device_display_info.h b/ui/gfx/android/shared_device_display_info.h
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..231438ea0439b1b0eba90f9c8c4af86fe27a04a6
 | 
| --- /dev/null
 | 
| +++ b/ui/gfx/android/shared_device_display_info.h
 | 
| @@ -0,0 +1,68 @@
 | 
| +// Copyright (c) 2012 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.
 | 
| +
 | 
| +#ifndef UI_GFX_ANDROID_SHARED_DEVICE_DISPLAY_INFO_H_
 | 
| +#define UI_GFX_ANDROID_SHARED_DEVICE_DISPLAY_INFO_H_
 | 
| +
 | 
| +#include "base/android/scoped_java_ref.h"
 | 
| +#include "base/basictypes.h"
 | 
| +#include "base/memory/singleton.h"
 | 
| +#include "base/synchronization/lock.h"
 | 
| +
 | 
| +namespace gfx {
 | 
| +
 | 
| +// Facilitates access to device information typically only
 | 
| +// available using the Android SDK, including Display properties.
 | 
| +class SharedDeviceDisplayInfo {
 | 
| + public:
 | 
| +  static SharedDeviceDisplayInfo* GetInstance();
 | 
| +
 | 
| +  int GetDisplayHeight();
 | 
| +  int GetDisplayWidth();
 | 
| +  int GetBitsPerPixel();
 | 
| +  int GetBitsPerComponent();
 | 
| +  double GetDIPScale();
 | 
| +  int GetSmallestDIPWidth();
 | 
| +
 | 
| +  // Registers methods with JNI and returns true if succeeded.
 | 
| +  static bool RegisterSharedDeviceDisplayInfo(JNIEnv* env);
 | 
| +
 | 
| +  void InvokeUpdate(JNIEnv* env,
 | 
| +                    jobject jobj,
 | 
| +                    jint display_height,
 | 
| +                    jint display_width,
 | 
| +                    jint bits_per_pixel,
 | 
| +                    jint bits_per_component,
 | 
| +                    jdouble dip_scale,
 | 
| +                    jint smallest_dip_width);
 | 
| + private:
 | 
| +  friend struct DefaultSingletonTraits<SharedDeviceDisplayInfo>;
 | 
| +
 | 
| +  SharedDeviceDisplayInfo();
 | 
| +  ~SharedDeviceDisplayInfo();
 | 
| +  void UpdateDisplayInfo(JNIEnv* env,
 | 
| +                         jobject jobj,
 | 
| +                         jint display_height,
 | 
| +                         jint display_width,
 | 
| +                         jint bits_per_pixel,
 | 
| +                         jint bits_per_component,
 | 
| +                         jdouble dip_scale,
 | 
| +                         jint smallest_dip_width);
 | 
| +
 | 
| +  base::Lock lock_;
 | 
| +  base::android::ScopedJavaGlobalRef<jobject> j_device_info_;
 | 
| +
 | 
| +  int display_height_;
 | 
| +  int display_width_;
 | 
| +  int bits_per_pixel_;
 | 
| +  int bits_per_component_;
 | 
| +  double dip_scale_;
 | 
| +  int smallest_dip_width_;
 | 
| +
 | 
| +  DISALLOW_COPY_AND_ASSIGN(SharedDeviceDisplayInfo);
 | 
| +};
 | 
| +
 | 
| +}  // namespace gfx
 | 
| +
 | 
| +#endif // UI_GFX_ANDROID_SHARED_DEVICE_DISPLAY_INFO_H_
 | 
| 
 |