Skip to content

Commit 834fc23

Browse files
Dianne HackbornAndroid (Google) Code Review
authored andcommitted
Merge "More activity tests." into jb-mr1-dev
2 parents e521573 + 3992645 commit 834fc23

File tree

4 files changed

+142
-3
lines changed

4 files changed

+142
-3
lines changed

tests/ActivityTests/AndroidManifest.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
<uses-permission android:name="android.permission.REMOVE_TASKS" />
2222
<uses-permission android:name="android.permission.READ_FRAME_BUFFER" />
2323
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
24+
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
25+
<uses-permission android:name="android.permission.MANAGE_USERS" />
2426
<application android:label="ActivityTest">
2527
<activity android:name="ActivityTestMain">
2628
<intent-filter>
@@ -31,6 +33,8 @@
3133
<service android:name="SingleUserService"
3234
android:singleUser="true" android:exported="true">
3335
</service>
36+
<service android:name="ServiceUserTarget">
37+
</service>
3438
<receiver android:name="UserTarget">
3539
</receiver>
3640
<receiver android:name="SingleUserReceiver"

tests/ActivityTests/src/com/google/android/test/activity/ActivityTestMain.java

Lines changed: 87 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package com.google.android.test.activity;
1818

19+
import java.util.ArrayList;
1920
import java.util.List;
2021

2122
import android.app.Activity;
@@ -31,6 +32,7 @@
3132
import android.os.IBinder;
3233
import android.os.RemoteException;
3334
import android.os.UserHandle;
35+
import android.os.UserManager;
3436
import android.graphics.Bitmap;
3537
import android.widget.ImageView;
3638
import android.widget.LinearLayout;
@@ -41,6 +43,7 @@
4143
import android.view.MenuItem;
4244
import android.view.View;
4345
import android.content.Context;
46+
import android.content.pm.UserInfo;
4447
import android.content.res.Configuration;
4548
import android.util.Log;
4649

@@ -51,6 +54,9 @@ public class ActivityTestMain extends Activity {
5154

5255
ActivityManager mAm;
5356
Configuration mOverrideConfig;
57+
int mSecondUser;
58+
59+
ArrayList<ServiceConnection> mConnections = new ArrayList<ServiceConnection>();
5460

5561
class BroadcastResultReceiver extends BroadcastReceiver {
5662
@Override
@@ -122,6 +128,15 @@ protected void onCreate(Bundle savedInstanceState) {
122128
applyOverrideConfiguration(mOverrideConfig);
123129
}
124130
}
131+
132+
UserManager um = (UserManager)getSystemService(Context.USER_SERVICE);
133+
List<UserInfo> users = um.getUsers();
134+
mSecondUser = Integer.MAX_VALUE;
135+
for (UserInfo ui : users) {
136+
if (ui.id != 0 && mSecondUser > ui.id) {
137+
mSecondUser = ui.id;
138+
}
139+
}
125140
}
126141

127142
@Override
@@ -148,7 +163,12 @@ public void onServiceDisconnected(ComponentName name) {
148163
Log.i(TAG, "Service disconnected " + name);
149164
}
150165
};
151-
bindService(intent, conn, Context.BIND_AUTO_CREATE);
166+
if (bindService(intent, conn, Context.BIND_AUTO_CREATE)) {
167+
mConnections.add(conn);
168+
} else {
169+
Toast.makeText(ActivityTestMain.this, "Failed to bind",
170+
Toast.LENGTH_LONG).show();
171+
}
152172
return true;
153173
}
154174
});
@@ -185,15 +205,70 @@ public void onServiceDisconnected(ComponentName name) {
185205
return true;
186206
}
187207
});
188-
menu.add("Send to user 1!").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
208+
menu.add("Send to user 0!").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
209+
@Override public boolean onMenuItemClick(MenuItem item) {
210+
Intent intent = new Intent(ActivityTestMain.this, UserTarget.class);
211+
sendOrderedBroadcastAsUser(intent, new UserHandle(0), null,
212+
new BroadcastResultReceiver(),
213+
null, Activity.RESULT_OK, null, null);
214+
return true;
215+
}
216+
});
217+
menu.add("Send to user " + mSecondUser + "!").setOnMenuItemClickListener(
218+
new MenuItem.OnMenuItemClickListener() {
189219
@Override public boolean onMenuItemClick(MenuItem item) {
190220
Intent intent = new Intent(ActivityTestMain.this, UserTarget.class);
191-
sendOrderedBroadcastAsUser(intent, new UserHandle(1), null,
221+
sendOrderedBroadcastAsUser(intent, new UserHandle(mSecondUser), null,
192222
new BroadcastResultReceiver(),
193223
null, Activity.RESULT_OK, null, null);
194224
return true;
195225
}
196226
});
227+
menu.add("Bind to user 0!").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
228+
@Override public boolean onMenuItemClick(MenuItem item) {
229+
Intent intent = new Intent(ActivityTestMain.this, ServiceUserTarget.class);
230+
ServiceConnection conn = new ServiceConnection() {
231+
@Override
232+
public void onServiceConnected(ComponentName name, IBinder service) {
233+
Log.i(TAG, "Service connected " + name + " " + service);
234+
}
235+
@Override
236+
public void onServiceDisconnected(ComponentName name) {
237+
Log.i(TAG, "Service disconnected " + name);
238+
}
239+
};
240+
if (bindService(intent, conn, Context.BIND_AUTO_CREATE, 0)) {
241+
mConnections.add(conn);
242+
} else {
243+
Toast.makeText(ActivityTestMain.this, "Failed to bind",
244+
Toast.LENGTH_LONG).show();
245+
}
246+
return true;
247+
}
248+
});
249+
menu.add("Bind to user " + mSecondUser + "!").setOnMenuItemClickListener(
250+
new MenuItem.OnMenuItemClickListener() {
251+
@Override public boolean onMenuItemClick(MenuItem item) {
252+
Intent intent = new Intent(ActivityTestMain.this, ServiceUserTarget.class);
253+
ServiceConnection conn = new ServiceConnection() {
254+
@Override
255+
public void onServiceConnected(ComponentName name, IBinder service) {
256+
Log.i(TAG, "Service connected " + name + " " + service);
257+
}
258+
@Override
259+
public void onServiceDisconnected(ComponentName name) {
260+
Log.i(TAG, "Service disconnected " + name);
261+
}
262+
};
263+
if (bindService(intent, conn, Context.BIND_AUTO_CREATE, mSecondUser)) {
264+
mConnections.add(conn);
265+
} else {
266+
Toast.makeText(ActivityTestMain.this, "Failed to bind",
267+
Toast.LENGTH_LONG).show();
268+
}
269+
return true;
270+
}
271+
});
197272
menu.add("Density!").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
198273
@Override public boolean onMenuItemClick(MenuItem item) {
199274
if (mOverrideConfig == null) {
@@ -226,6 +301,15 @@ protected void onSaveInstanceState(Bundle outState) {
226301
}
227302
}
228303

304+
@Override
305+
protected void onStop() {
306+
super.onStop();
307+
for (ServiceConnection conn : mConnections) {
308+
unbindService(conn);
309+
}
310+
mConnections.clear();
311+
}
312+
229313
private View scrollWrap(View view) {
230314
ScrollView scroller = new ScrollView(this);
231315
scroller.addView(view, new ScrollView.LayoutParams(ScrollView.LayoutParams.MATCH_PARENT,
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/*
2+
* Copyright (C) 2012 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.google.android.test.activity;
18+
19+
import android.app.Service;
20+
import android.content.Intent;
21+
import android.os.Binder;
22+
import android.os.IBinder;
23+
import android.os.UserHandle;
24+
import android.widget.Toast;
25+
26+
public class ServiceUserTarget extends Service {
27+
Binder mBinder = new Binder();
28+
29+
@Override
30+
public void onCreate() {
31+
super.onCreate();
32+
Toast.makeText(this,
33+
"Service created as user " + UserHandle.myUserId(),
34+
Toast.LENGTH_LONG).show();
35+
}
36+
37+
@Override
38+
public IBinder onBind(Intent intent) {
39+
return mBinder;
40+
}
41+
}

tests/ActivityTests/src/com/google/android/test/activity/SingleUserService.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,20 @@
2020
import android.content.Intent;
2121
import android.os.Binder;
2222
import android.os.IBinder;
23+
import android.os.UserHandle;
24+
import android.widget.Toast;
2325

2426
public class SingleUserService extends Service {
2527
Binder mBinder = new Binder();
2628

29+
@Override
30+
public void onCreate() {
31+
super.onCreate();
32+
Toast.makeText(this,
33+
"Service created as user " + UserHandle.myUserId(),
34+
Toast.LENGTH_LONG).show();
35+
}
36+
2737
@Override
2838
public IBinder onBind(Intent intent) {
2939
return mBinder;

0 commit comments

Comments
 (0)