Skip to content
This repository was archived by the owner on Feb 26, 2023. It is now read-only.

Commit 3ef19c4

Browse files
committed
Add missing system services
Lot of system services were missing which are added in newer Android versions. Now AndroidAnnotations support those. Also added tests for all services, and commented out those which cannot be tested due to Android version or Robolectric issues.
1 parent 20204df commit 3ef19c4

4 files changed

Lines changed: 119 additions & 18 deletions

File tree

‎AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/model/AndroidSystemServices.java‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,16 @@ public AndroidSystemServices() {
6565
registeredServices.put("android.net.wifi.WifiManager", "android.content.Context.WIFI_SERVICE");
6666
registeredServices.put("android.net.wifi.p2p.WifiP2pManager", "android.content.Context.WIFI_P2P_SERVICE");
6767
registeredServices.put("android.view.WindowManager", "android.content.Context.WINDOW_SERVICE");
68+
registeredServices.put("android.hardware.ConsumerIrManager", "android.content.Context.CONSUMER_IR_SERVICE");
69+
registeredServices.put("android.view.accessibility.CaptioningManager", "android.content.Context.CAPTIONING_SERVICE");
70+
registeredServices.put("android.bluetooth.BluetoothAdapter", "android.content.Context.BLUETOOTH_SERVICE");
71+
registeredServices.put("android.app.AppOpsManager", "android.content.Context.APP_OPS_SERVICE");
72+
registeredServices.put("android.hardware.display.DisplayManager", "android.content.Context.DISPLAY_SERVICE");
73+
registeredServices.put("android.hardware.input.InputManager", "android.content.Context.INPUT_SERVICE");
74+
registeredServices.put("android.media.MediaRouter", "android.content.Context.MEDIA_ROUTER_SERVICE");
75+
registeredServices.put("android.print.PrintManager", "android.content.Context.PRINT_SERVICE");
76+
registeredServices.put("android.net.nsd.NsdManager", "android.content.Context.NSD_SERVICE");
77+
registeredServices.put("android.os.UserManager", "android.content.Context.USER_SERVICE");
6878
}
6979

7080
public boolean contains(TypeMirror serviceType) {

‎AndroidAnnotations/functional-test-1-5-tests/pom.xml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<dependency>
2121
<groupId>com.google.android</groupId>
2222
<artifactId>android</artifactId>
23-
<version>4.0.1.2</version>
23+
<version>4.1.1.4</version>
2424
<scope>test</scope>
2525
</dependency>
2626
<dependency>

‎AndroidAnnotations/functional-test-1-5-tests/src/test/java/org/androidannotations/test15/ServiceInjectionTest.java‎

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,33 @@ public void servicesAreInjected() {
4747
assertThat(activity.audioManager).isNotNull();
4848
assertThat(activity.textClipboardManager).isNotNull();
4949
assertThat(activity.contentClipboardManager).isNotNull();
50+
// assertThat(activity.accessibilityManager).isNotNull(); // TODO Robolectric 2.4
51+
// assertThat(activity.accountManager).isNotNull(); // TODO no support yet in Robolectric
52+
// assertThat(activity.wallpaperManager).isNotNull(); // TODO no support yet in Robolectric
53+
assertThat(activity.dropBoxManager).isNotNull();
54+
assertThat(activity.devicePolicyManager).isNotNull();
55+
assertThat(activity.storageManager).isNotNull();
56+
// assertThat(activity.nfcManager).isNotNull(); // TODO no support yet in Robolectric
57+
// assertThat(activity.usbManager).isNotNull(); // TODO no support yet in Robolectric
58+
assertThat(activity.textServicesManager).isNotNull();
59+
// assertThat(activity.wifiP2pManager).isNotNull(); // TODO no support yet in Robolectric
60+
assertThat(activity.uiModeManager).isNotNull();
61+
assertThat(activity.downloadManager).isNotNull();
62+
// assertThat(activity.inputManager).isNotNull(); // TODO no support yet in Robolectric
63+
// assertThat(activity.mediaRouter).isNotNull(); // TODO Robolectric 2.4
64+
// assertThat(activity.nsdManager).isNotNull(); // TODO no support yet in Robolectric
65+
// assertThat(activity.countryDetector).isNotNull();
66+
// assertThat(activity.networkPolicyManager).isNotNull();
67+
// assertThat(activity.throttleManager).isNotNull();
68+
// assertThat(activity.statusBarManager).isNotNull();
69+
// assertThat(activity.appWidgetManager).isNotNull();
70+
// assertThat(activity.consumerIrManager).isNotNull(); // TODO API 19
71+
// assertThat(activity.captioningManager).isNotNull(); // TODO API 19
72+
// assertThat(activity.bluetoothAdapter).isNotNull(); // TODO API 18
73+
// assertThat(activity.appOpsManager).isNotNull(); // TODO API 19
74+
// assertThat(activity.displayManager).isNotNull(); // TODO API 17
75+
// assertThat(activity.printManager).isNotNull(); // TODO API 19
76+
// assertThat(activity.userManager).isNotNull(); // TODO API 19
5077
}
5178

5279
}

‎AndroidAnnotations/functional-test-1-5/src/main/java/org/androidannotations/test15/ActivityWithServices.java‎

Lines changed: 81 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,26 @@
2121
import android.app.Activity;
2222
import android.app.ActivityManager;
2323
import android.app.AlarmManager;
24+
import android.app.DownloadManager;
2425
import android.app.KeyguardManager;
2526
import android.app.NotificationManager;
2627
import android.app.SearchManager;
28+
import android.app.UiModeManager;
29+
import android.app.admin.DevicePolicyManager;
2730
import android.hardware.SensorManager;
2831
import android.location.LocationManager;
2932
import android.media.AudioManager;
3033
import android.net.ConnectivityManager;
3134
import android.net.wifi.WifiManager;
35+
import android.os.DropBoxManager;
3236
import android.os.PowerManager;
3337
import android.os.Vibrator;
38+
import android.os.storage.StorageManager;
3439
import android.telephony.TelephonyManager;
3540
import android.view.LayoutInflater;
3641
import android.view.WindowManager;
3742
import android.view.inputmethod.InputMethodManager;
43+
import android.view.textservice.TextServicesManager;
3844

3945
@SuppressWarnings("deprecation")
4046
@EActivity
@@ -94,45 +100,103 @@ public class ActivityWithServices extends Activity {
94100
@SystemService
95101
AudioManager audioManager;
96102

97-
// API level 4
103+
// TODO Robolectric 2.4
98104
// @SystemService
99105
// AccessibilityManager accessibilityManager;
100106

101-
// API Level 5
107+
// TODO no support yet in Robolectric
102108
// @SystemService
103109
// AccountManager accountManager;
104110

111+
// TODO no support yet in Robolectric
105112
// @SystemService
106113
// WallpaperManager wallpaperManager;
107114

108-
// API level 8
115+
@SystemService
116+
DropBoxManager dropBoxManager;
117+
118+
@SystemService
119+
DevicePolicyManager devicePolicyManager;
120+
121+
@SystemService
122+
StorageManager storageManager;
123+
124+
// TODO no support yet in Robolectric
109125
// @SystemService
110-
// DropBoxManager dropBoxManager;
126+
// NfcManager nfcManager;
127+
128+
// TODO no support yet in Robolectric
129+
// @SystemService
130+
// UsbManager usbManager;
111131

132+
@SystemService
133+
TextServicesManager textServicesManager;
134+
135+
// TODO no support yet in Robolectric
112136
// @SystemService
113-
// DevicePolicyManager devicePolicyManager;
137+
// WifiP2pManager wifiP2pManager;
138+
139+
@SystemService
140+
UiModeManager uiModeManager;
114141

115-
// API level 9
142+
@SystemService
143+
DownloadManager downloadManager;
144+
145+
// TODO no support yet in Robolectric
116146
// @SystemService
117-
// StorageManager storageManager;
147+
// InputManager inputManager;
118148

119-
// API level 10
149+
// TODO Robolectric 2.4
120150
// @SystemService
121-
// NfcManager nfcManager;
151+
// MediaRouter mediaRouter;
122152

123-
// API level 12
153+
// TODO no support yet in Robolectric
124154
// @SystemService
125-
// UsbManager usbManager;
155+
// NsdManager nsdManager;
126156

127-
// API level 14
128157
// @SystemService
129-
// TextServicesManager textServicesManager;
158+
// CountryDetector countryDetector;
130159

131160
// @SystemService
132-
// WifiP2pManager wifiP2pManager;
161+
// NetworkManagementService networkManagementService;
133162

134-
// TODO Test those for > 1.5 Android versions
135-
// UiModeManager uiModeManager;
136-
// DownloadManager downloadManager;
163+
// @SystemService
164+
// NetworkPolicyManager networkPolicyManager;
165+
166+
// @SystemService
167+
// ThrottleManager throttleManager;
168+
169+
// @SystemService
170+
// StatusBarManager statusBarManager;
171+
172+
// @SystemService
173+
// AppWidgetManager appWidgetManager;
174+
175+
// TODO API 19
176+
// @SystemService
177+
// ConsumerIrManager consumerIrManager;
178+
179+
// TODO API 19
180+
// @SystemService
181+
// CaptioningManager captioningManager;
182+
183+
// TODO API 18
184+
// @SystemService
185+
// BluetoothAdapter bluetoothAdapter;
186+
187+
// TODO API 19
188+
// @SystemService
189+
// AppOpsManager appOpsManager;
137190

191+
// TODO API 17
192+
// @SystemService
193+
// DisplayManager displayManager;
194+
195+
// TODO API 19
196+
// @SystemService
197+
// PrintManager printManager;
198+
199+
// TODO API 19
200+
// @SystemService
201+
// UserManager userManager;
138202
}

0 commit comments

Comments
 (0)