Implement multi-network downloads
[android/platform/packages/providers/DownloadProvider.git] / tests / src / com / android / providers / downloads / FakeSystemFacade.java
1 package com.android.providers.downloads;
2
3 import android.content.Intent;
4 import android.content.pm.PackageManager.NameNotFoundException;
5 import android.net.ConnectivityManager;
6 import android.net.Network;
7 import android.net.NetworkInfo;
8 import android.net.NetworkInfo.DetailedState;
9
10 import java.util.ArrayList;
11 import java.util.List;
12 public class FakeSystemFacade implements SystemFacade {
13     long mTimeMillis = 0;
14     Network mActiveNetwork = null;
15     Integer mActiveNetworkType = ConnectivityManager.TYPE_WIFI;
16     boolean mIsRoaming = false;
17     boolean mIsMetered = false;
18     Long mMaxBytesOverMobile = null;
19     Long mRecommendedMaxBytesOverMobile = null;
20     List<Intent> mBroadcastsSent = new ArrayList<Intent>();
21     boolean mCleartextTrafficPermitted = true;
22     private boolean mReturnActualTime = false;
23
24     public void setUp() {
25         mTimeMillis = 0;
26         mActiveNetworkType = ConnectivityManager.TYPE_WIFI;
27         mIsRoaming = false;
28         mIsMetered = false;
29         mMaxBytesOverMobile = null;
30         mRecommendedMaxBytesOverMobile = null;
31         mBroadcastsSent.clear();
32         mReturnActualTime = false;
33     }
34
35     void incrementTimeMillis(long delta) {
36         mTimeMillis += delta;
37     }
38
39     @Override
40     public long currentTimeMillis() {
41         if (mReturnActualTime) {
42             return System.currentTimeMillis();
43         }
44         return mTimeMillis;
45     }
46
47     @Override
48     public Network getActiveNetwork(int uid) {
49         return mActiveNetwork;
50     }
51
52     @Override
53     public NetworkInfo getActiveNetworkInfo(int uid) {
54         if (mActiveNetworkType == null) {
55             return null;
56         } else {
57             final NetworkInfo info = new NetworkInfo(mActiveNetworkType, 0, null, null);
58             info.setDetailedState(DetailedState.CONNECTED, null, null);
59             return info;
60         }
61     }
62
63     @Override
64     public boolean isActiveNetworkMetered() {
65         return mIsMetered;
66     }
67
68     @Override
69     public boolean isNetworkRoaming() {
70         return mIsRoaming;
71     }
72
73     @Override
74     public Long getMaxBytesOverMobile() {
75         return mMaxBytesOverMobile;
76     }
77
78     @Override
79     public Long getRecommendedMaxBytesOverMobile() {
80         return mRecommendedMaxBytesOverMobile;
81     }
82
83     @Override
84     public void sendBroadcast(Intent intent) {
85         mBroadcastsSent.add(intent);
86     }
87
88     @Override
89     public boolean userOwnsPackage(int uid, String pckg) throws NameNotFoundException {
90         return true;
91     }
92
93     @Override
94     public boolean isCleartextTrafficPermitted(int uid) {
95         return mCleartextTrafficPermitted;
96     }
97
98     public void setReturnActualTime(boolean flag) {
99         mReturnActualTime = flag;
100     }
101 }