1 /*
2  * Copyright (C) 2017 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
5  * except in compliance with the License. You may obtain a copy of the License at
6  *
7  *      http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software distributed under the
10  * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
11  * KIND, either express or implied. See the License for the specific language governing
12  * permissions and limitations under the License.
13  */
14 
15 package com.android.systemui.util.leak;
16 
17 import android.content.Context;
18 import android.content.res.Configuration;
19 import android.view.Surface;
20 
21 public class RotationUtils {
22 
23     public static final int ROTATION_NONE = 0;
24     public static final int ROTATION_LANDSCAPE = 1;
25     public static final int ROTATION_SEASCAPE = 2;
26     public static final int ROTATION_UPSIDE_DOWN = 3;
27 
getRotation(Context context)28     public static int getRotation(Context context) {
29         Configuration config = context.getResources().getConfiguration();
30         int rot = context.getDisplay().getRotation();
31         if (config.smallestScreenWidthDp < 600) {
32             if (rot == Surface.ROTATION_90) {
33                 return ROTATION_LANDSCAPE;
34             } else if (rot == Surface.ROTATION_270) {
35                 return ROTATION_SEASCAPE;
36             }
37         }
38         return ROTATION_NONE;
39     }
40 
getExactRotation(Context context)41     public static int getExactRotation(Context context) {
42         Configuration config = context.getResources().getConfiguration();
43         int rot = context.getDisplay().getRotation();
44         if (config.smallestScreenWidthDp < 600) {
45             if (rot == Surface.ROTATION_90) {
46                 return ROTATION_LANDSCAPE;
47             } else if (rot == Surface.ROTATION_270) {
48                 return ROTATION_SEASCAPE;
49             } else if (rot == Surface.ROTATION_180) {
50                 return ROTATION_UPSIDE_DOWN;
51             }
52         }
53         return ROTATION_NONE;
54     }
55 }
56