14
14
* limitations under the License.
15
15
*/
16
16
17
- package com .afwsamples .testdpc .policy ;
17
+ package com .afwsamples .testdpc .provision ;
18
18
19
+ import static android .app .admin .DevicePolicyManager .EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE ;
20
+
21
+ import android .accounts .Account ;
19
22
import android .app .Activity ;
20
23
import android .content .Intent ;
21
24
import android .os .Bundle ;
25
+ import android .util .Log ;
22
26
import android .view .View ;
23
27
import android .widget .RadioGroup ;
28
+ import com .afwsamples .testdpc .AddAccountActivity ;
24
29
import com .afwsamples .testdpc .R ;
25
30
import com .android .setupwizardlib .GlifLayout ;
26
31
@@ -37,6 +42,9 @@ public class DpcLoginActivity extends Activity {
37
42
public static final int PROVISIONING_MODE_PO = 2 ;
38
43
public static final int PROVISIONING_MODE_MANAGED_PROFILE_ON_FULLY_MANAGED_DEVICE = 3 ;
39
44
45
+ private static final String LOG_TAG = "DpcLoginActivity" ;
46
+ private static final int ADD_ACCOUNT_REQUEST_CODE = 1 ;
47
+
40
48
@ Override
41
49
public void onCreate (Bundle icicle ) {
42
50
super .onCreate (icicle );
@@ -51,22 +59,54 @@ public void onBackPressed() {
51
59
super .onBackPressed ();
52
60
}
53
61
62
+ @ Override
63
+ protected void onActivityResult (int requestCode , int resultCode , Intent data ) {
64
+ switch (requestCode ) {
65
+ case ADD_ACCOUNT_REQUEST_CODE :
66
+ finishWithIntent (createResultIntentFromData (data ));
67
+ break ;
68
+ default :
69
+ Log .d (LOG_TAG , "Unknown result code: " + resultCode );
70
+ break ;
71
+ }
72
+ }
73
+
74
+ private Intent createResultIntentFromData (Intent data ) {
75
+ final Intent resultIntent = new Intent ();
76
+ resultIntent .putExtra (EXTRA_PROVISIONING_MODE , PROVISIONING_MODE_PO );
77
+ if (data != null && data .hasExtra (EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE )) {
78
+ final Account accountToMigrate = data .getParcelableExtra (
79
+ EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE );
80
+ resultIntent .putExtra (EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE , accountToMigrate );
81
+ }
82
+ return resultIntent ;
83
+ }
84
+
54
85
private void onNavigateNext (View nextButton ) {
55
- Intent intent = new Intent ();
86
+ final Intent intent = new Intent ();
56
87
RadioGroup dpcLoginOptions = findViewById (R .id .dpc_login_options );
57
88
switch (dpcLoginOptions .getCheckedRadioButtonId ()) {
58
89
case R .id .dpc_login_do :
59
90
intent .putExtra (EXTRA_PROVISIONING_MODE , PROVISIONING_MODE_DO );
60
- break ;
91
+ finishWithIntent (intent );
92
+ return ;
61
93
case R .id .dpc_login_po :
62
- intent .putExtra (EXTRA_PROVISIONING_MODE , PROVISIONING_MODE_PO );
63
- break ;
94
+ startActivityForResult (
95
+ new Intent (getApplicationContext (), AddAccountActivity .class ),
96
+ ADD_ACCOUNT_REQUEST_CODE );
97
+ return ;
64
98
case R .id .dpc_login_comp :
65
99
intent .putExtra (EXTRA_PROVISIONING_MODE ,
66
100
PROVISIONING_MODE_MANAGED_PROFILE_ON_FULLY_MANAGED_DEVICE );
67
- break ;
101
+ finishWithIntent (intent );
102
+ return ;
103
+ default :
104
+ finish ();
68
105
}
69
- setResult (RESULT_OK , intent );
106
+ }
107
+
108
+ private void finishWithIntent (Intent intent ) {
109
+ setResult (RESULT_OK , intent );
70
110
finish ();
71
111
}
72
112
}
0 commit comments