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

Side by Side Diff: content/public/android/java/src/org/chromium/content/browser/ScreenOrientationProvider.java

Issue 410173002: Make ScreenOrientationProvider (Java) a bag of static methods. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.content.browser; 5 package org.chromium.content.browser;
6 6
7 import android.app.Activity; 7 import android.app.Activity;
8 import android.content.pm.ActivityInfo; 8 import android.content.pm.ActivityInfo;
9 import android.content.pm.PackageManager; 9 import android.content.pm.PackageManager;
10 import android.util.Log; 10 import android.util.Log;
11 11
12 import com.google.common.annotations.VisibleForTesting;
13
14 import org.chromium.base.ApplicationStatus; 12 import org.chromium.base.ApplicationStatus;
15 import org.chromium.base.CalledByNative; 13 import org.chromium.base.CalledByNative;
16 import org.chromium.base.JNINamespace; 14 import org.chromium.base.JNINamespace;
17 import org.chromium.content.common.ScreenOrientationValues; 15 import org.chromium.content.common.ScreenOrientationValues;
18 16
19 /** 17 /**
20 * This is the implementation of the C++ counterpart ScreenOrientationProvider. 18 * This is the implementation of the C++ counterpart ScreenOrientationProvider.
21 */ 19 */
22 @JNINamespace("content") 20 @JNINamespace("content")
23 class ScreenOrientationProvider { 21 class ScreenOrientationProvider {
24 private static final String TAG = "ScreenOrientationProvider"; 22 private static final String TAG = "ScreenOrientationProvider";
25 23
26 private int getOrientationFromWebScreenOrientations(byte orientations) { 24 private static int getOrientationFromWebScreenOrientations(byte orientations ) {
27 switch (orientations) { 25 switch (orientations) {
28 case ScreenOrientationValues.DEFAULT: 26 case ScreenOrientationValues.DEFAULT:
29 return ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED; 27 return ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
30 case ScreenOrientationValues.PORTRAIT_PRIMARY: 28 case ScreenOrientationValues.PORTRAIT_PRIMARY:
31 return ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; 29 return ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
32 case ScreenOrientationValues.PORTRAIT_SECONDARY: 30 case ScreenOrientationValues.PORTRAIT_SECONDARY:
33 return ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT; 31 return ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT;
34 case ScreenOrientationValues.LANDSCAPE_PRIMARY: 32 case ScreenOrientationValues.LANDSCAPE_PRIMARY:
35 return ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; 33 return ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
36 case ScreenOrientationValues.LANDSCAPE_SECONDARY: 34 case ScreenOrientationValues.LANDSCAPE_SECONDARY:
37 return ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE; 35 return ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE;
38 case ScreenOrientationValues.PORTRAIT: 36 case ScreenOrientationValues.PORTRAIT:
39 return ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT; 37 return ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT;
40 case ScreenOrientationValues.LANDSCAPE: 38 case ScreenOrientationValues.LANDSCAPE:
41 return ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE; 39 return ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE;
42 case ScreenOrientationValues.ANY: 40 case ScreenOrientationValues.ANY:
43 return ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR; 41 return ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR;
44 default: 42 default:
45 Log.w(TAG, "Trying to lock to unsupported orientation!"); 43 Log.w(TAG, "Trying to lock to unsupported orientation!");
46 return ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED; 44 return ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
47 } 45 }
48 } 46 }
49 47
50 @VisibleForTesting
51 @CalledByNative 48 @CalledByNative
52 static ScreenOrientationProvider create() { 49 static void lockOrientation(byte orientations) {
53 return new ScreenOrientationProvider();
54 }
55
56 @CalledByNative
57 void lockOrientation(byte orientations) {
58 Activity activity = ApplicationStatus.getLastTrackedFocusedActivity(); 50 Activity activity = ApplicationStatus.getLastTrackedFocusedActivity();
59 if (activity == null) { 51 if (activity == null) {
60 return; 52 return;
61 } 53 }
62 54
63 int orientation = getOrientationFromWebScreenOrientations(orientations); 55 int orientation = getOrientationFromWebScreenOrientations(orientations);
64 if (orientation == ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) { 56 if (orientation == ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) {
65 return; 57 return;
66 } 58 }
67 59
68 activity.setRequestedOrientation(orientation); 60 activity.setRequestedOrientation(orientation);
69 } 61 }
70 62
71 @CalledByNative 63 @CalledByNative
72 void unlockOrientation() { 64 static void unlockOrientation() {
73 Activity activity = ApplicationStatus.getLastTrackedFocusedActivity(); 65 Activity activity = ApplicationStatus.getLastTrackedFocusedActivity();
74 if (activity == null) { 66 if (activity == null) {
75 return; 67 return;
76 } 68 }
77 69
78 int defaultOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED; 70 int defaultOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
79 71
80 try { 72 try {
81 ActivityInfo info = activity.getPackageManager().getActivityInfo( 73 ActivityInfo info = activity.getPackageManager().getActivityInfo(
82 activity.getComponentName(), PackageManager.GET_META_DATA); 74 activity.getComponentName(), PackageManager.GET_META_DATA);
83 defaultOrientation = info.screenOrientation; 75 defaultOrientation = info.screenOrientation;
84 } catch (PackageManager.NameNotFoundException e) { 76 } catch (PackageManager.NameNotFoundException e) {
85 // Do nothing, defaultOrientation should be SCREEN_ORIENTATION_UNSPE CIFIED. 77 // Do nothing, defaultOrientation should be SCREEN_ORIENTATION_UNSPE CIFIED.
86 } finally { 78 } finally {
87 activity.setRequestedOrientation(defaultOrientation); 79 activity.setRequestedOrientation(defaultOrientation);
88 } 80 }
89 } 81 }
90 82
91 private ScreenOrientationProvider() { 83 private ScreenOrientationProvider() {
92 } 84 }
93 } 85 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698