1 /*
2  * Copyright 2019 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy 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,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.car.settings.testutils;
18 
19 import android.app.ActivityManager;
20 import android.content.pm.IPackageDataObserver;
21 
22 import org.robolectric.annotation.Implementation;
23 import org.robolectric.annotation.Implements;
24 import org.robolectric.annotation.Resetter;
25 
26 @Implements(value = ActivityManager.class)
27 public class ShadowActivityManager extends org.robolectric.shadows.ShadowActivityManager {
28 
29     private static boolean sIsApplicationUserDataCleared;
30 
31     private String mMostRecentlyStoppedPackage;
32 
33     @Resetter
reset()34     public static void reset() {
35         sIsApplicationUserDataCleared = false;
36     }
37 
38     @Implementation
forceStopPackage(String packageName)39     protected void forceStopPackage(String packageName) {
40         mMostRecentlyStoppedPackage = packageName;
41     }
42 
43     @Implementation
clearApplicationUserData(String packageName, IPackageDataObserver observer)44     protected boolean clearApplicationUserData(String packageName, IPackageDataObserver observer) {
45         return sIsApplicationUserDataCleared;
46     }
47 
getMostRecentlyStoppedPackage()48     public String getMostRecentlyStoppedPackage() {
49         return mMostRecentlyStoppedPackage;
50     }
51 
setApplicationUserDataCleared(boolean applicationUserDataCleared)52     public static void setApplicationUserDataCleared(boolean applicationUserDataCleared) {
53         sIsApplicationUserDataCleared = applicationUserDataCleared;
54     }
55 }
56