• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2020 The Chromium Authors
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.base.compat;
6 
7 import android.app.ActivityManager;
8 import android.content.Context;
9 import android.graphics.Rect;
10 import android.hardware.input.InputManager;
11 import android.net.Uri;
12 import android.os.Build;
13 import android.os.storage.StorageManager;
14 import android.view.Display;
15 import android.view.InputEvent;
16 import android.view.VerifiedInputEvent;
17 import android.view.WindowManager;
18 
19 import androidx.annotation.RequiresApi;
20 
21 import java.io.File;
22 
23 /**
24  * Utility class to use new APIs that were added in R (API level 30). These need to exist in a
25  * separate class so that Android framework can successfully verify classes without
26  * encountering the new APIs.
27  */
28 @RequiresApi(Build.VERSION_CODES.R)
29 public final class ApiHelperForR {
ApiHelperForR()30     private ApiHelperForR() {}
31 
getDisplay(Context context)32     public static Display getDisplay(Context context) throws UnsupportedOperationException {
33         return context.getDisplay();
34     }
35 
36     /**
37      * See {@link StorageManager#getStorageVolume(Uri)}.
38      * See {@link File#getDirectory()}.
39      */
getVolumeDir(StorageManager manager, Uri uri)40     public static File getVolumeDir(StorageManager manager, Uri uri) {
41         return manager.getStorageVolume(uri).getDirectory();
42     }
43 
44     /** See {@link InputManager#verifyInputEvent(InputEvent)}. */
verifyInputEvent(InputManager manager, InputEvent inputEvent)45     public static VerifiedInputEvent verifyInputEvent(InputManager manager, InputEvent inputEvent) {
46         return manager.verifyInputEvent(inputEvent);
47     }
48 
49     /** See {@link android.app.ActivityManager#setProcessStateSummary(byte[])} */
setProcessStateSummary(ActivityManager am, byte[] bytes)50     public static void setProcessStateSummary(ActivityManager am, byte[] bytes) {
51         am.setProcessStateSummary(bytes);
52     }
53 
54     /**
55      * See {@link WindowManager#getMaximumWindowMetrics()}.
56      * See {@link WindowMetrics#getBounds()}.
57      */
getMaximumWindowMetricsBounds(WindowManager manager)58     public static Rect getMaximumWindowMetricsBounds(WindowManager manager) {
59         return manager.getMaximumWindowMetrics().getBounds();
60     }
61 }
62