1 /** 2 * Copyright (C) 2014 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not 5 * use this file except in compliance with the License. You may obtain a copy 6 * of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 * License for the specific language governing permissions and limitations 14 * under the License. 15 */ 16 17 package android.app.usage.cts; 18 19 import android.annotation.Nullable; 20 import android.app.Activity; 21 import android.os.Bundle; 22 import android.util.ArraySet; 23 import android.view.WindowManager; 24 25 public final class Activities { 26 27 public static final ArraySet<Activity> sStartedActivities = new ArraySet<>(); 28 29 private static class KeepScreenOnActivity extends Activity { 30 @Override onCreate(@ullable Bundle savedInstanceState)31 protected void onCreate(@Nullable Bundle savedInstanceState) { 32 super.onCreate(savedInstanceState); 33 getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 34 } 35 36 @Override onStart()37 protected void onStart() { 38 super.onStart(); 39 synchronized (sStartedActivities) { 40 sStartedActivities.add(this); 41 } 42 } 43 44 @Override onStop()45 protected void onStop() { 46 super.onStop(); 47 synchronized (sStartedActivities) { 48 sStartedActivities.remove(this); 49 } 50 } 51 } 52 53 public static class ActivityOne extends KeepScreenOnActivity {} 54 public static class ActivityTwo extends KeepScreenOnActivity {} 55 public static class ActivityThree extends KeepScreenOnActivity {} 56 public static class ActivityFour extends KeepScreenOnActivity {} 57 Activities()58 private Activities() {} 59 } 60