16
16
17
17
package com .afwsamples .testdpc ;
18
18
19
+ import static android .app .admin .DevicePolicyManager .ACTION_PROVISION_MANAGED_DEVICE ;
20
+ import static android .app .admin .DevicePolicyManager .ACTION_PROVISION_MANAGED_PROFILE ;
21
+ import static android .app .admin .DevicePolicyManager .EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE ;
22
+ import static android .app .admin .DevicePolicyManager .EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE ;
23
+ import static android .app .admin .DevicePolicyManager .EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME ;
24
+ import static android .app .admin .DevicePolicyManager .EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME ;
25
+ import static android .app .admin .DevicePolicyManager .EXTRA_PROVISIONING_LOGO_URI ;
26
+ import static android .app .admin .DevicePolicyManager .EXTRA_PROVISIONING_MAIN_COLOR ;
27
+
19
28
import android .accounts .Account ;
20
29
import android .annotation .TargetApi ;
21
30
import android .app .Activity ;
43
52
import android .widget .RadioGroup ;
44
53
import android .widget .TextView ;
45
54
import android .widget .Toast ;
46
-
47
55
import com .afwsamples .testdpc .common .ColorPicker ;
48
56
import com .afwsamples .testdpc .common .LaunchIntentUtil ;
49
57
import com .afwsamples .testdpc .common .ProvisioningStateUtil ;
50
58
import com .afwsamples .testdpc .common .Util ;
51
59
import com .android .setupwizardlib .SetupWizardLayout ;
52
60
import com .android .setupwizardlib .view .NavigationBar ;
53
-
54
61
import java .security .SecureRandom ;
55
- import java .util .Arrays ;
56
62
import java .util .Collections ;
57
63
import java .util .Set ;
58
64
59
- import static android .app .admin .DevicePolicyManager .ACTION_PROVISION_MANAGED_DEVICE ;
60
- import static android .app .admin .DevicePolicyManager .ACTION_PROVISION_MANAGED_PROFILE ;
61
- import static android .app .admin .DevicePolicyManager .EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE ;
62
- import static android .app .admin .DevicePolicyManager .EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE ;
63
- import static android .app .admin .DevicePolicyManager .EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME ;
64
- import static android .app .admin .DevicePolicyManager .EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_NAME ;
65
- import static android .app .admin .DevicePolicyManager .EXTRA_PROVISIONING_LOGO_URI ;
66
- import static android .app .admin .DevicePolicyManager .EXTRA_PROVISIONING_MAIN_COLOR ;
67
-
68
65
/**
69
66
* This {@link Fragment} shows the UI that allows the user to start the setup of a managed profile
70
67
* or configuration of a device-owner if the device is in an appropriate state.
@@ -79,6 +76,8 @@ public class SetupManagementFragment extends Fragment implements
79
76
private static final int REQUEST_PROVISION_DEVICE_OWNER = 2 ;
80
77
private static final int REQUEST_GET_LOGO = 3 ;
81
78
79
+ private static final int NO_COLOR_SPECIFIED = -1 ;
80
+
82
81
private TextView mSetupManagementMessage ;
83
82
private RadioGroup mSetupOptions ;
84
83
private Button mNavigationNextButton ;
@@ -95,18 +94,15 @@ public class SetupManagementFragment extends Fragment implements
95
94
private ImageView mLogoPreviewView ;
96
95
private TextView mLogoValue ;
97
96
98
- private int mCurrentColor ;
97
+ private int mCurrentColor = NO_COLOR_SPECIFIED ;
99
98
private Uri mLogoUri = null ;
100
99
101
100
@ Override
102
101
public View onCreateView (LayoutInflater inflater , ViewGroup container ,
103
102
Bundle savedInstanceState ) {
104
103
if (savedInstanceState != null ) {
105
- mLogoUri = ( Uri ) savedInstanceState .getParcelable (EXTRA_PROVISIONING_LOGO_URI );
104
+ mLogoUri = savedInstanceState .getParcelable (EXTRA_PROVISIONING_LOGO_URI );
106
105
mCurrentColor = savedInstanceState .getInt (EXTRA_PROVISIONING_MAIN_COLOR );
107
- } else {
108
- mLogoUri = resourceToUri (getActivity (), R .drawable .ic_launcher );
109
- mCurrentColor = getResources ().getColor (R .color .teal );
110
106
}
111
107
112
108
// Use setupwizard theme
@@ -134,9 +130,9 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
134
130
135
131
view .findViewById (R .id .color_select_button ).setOnClickListener (this );
136
132
mColorValue = (TextView ) view .findViewById (R .id .selected_color_value );
137
- mColorValue .setText (String .format (ColorPicker .COLOR_STRING_FORMATTER , mCurrentColor ));
138
133
mColorPreviewView = (ImageView ) view .findViewById (R .id .preview_color );
139
- mColorPreviewView .setImageTintList (ColorStateList .valueOf (mCurrentColor ));
134
+
135
+ updateColorUi ();
140
136
141
137
Intent launchIntent = getActivity ().getIntent ();
142
138
if (LaunchIntentUtil .isSynchronousAuthLaunch (launchIntent )) {
@@ -376,6 +372,9 @@ private void specifySkipEncryption(Intent intent) {
376
372
377
373
378
374
private void specifyLogoUri (Intent intent ) {
375
+ if (mLogoUri == null ) {
376
+ return ;
377
+ }
379
378
intent .putExtra (EXTRA_PROVISIONING_LOGO_URI , mLogoUri );
380
379
if (mLogoUri .getScheme ().equals (ContentResolver .SCHEME_CONTENT )) {
381
380
intent .setFlags (Intent .FLAG_GRANT_READ_URI_PERMISSION );
@@ -384,6 +383,9 @@ private void specifyLogoUri(Intent intent) {
384
383
}
385
384
386
385
private void specifyColor (Intent intent ) {
386
+ if (mCurrentColor == NO_COLOR_SPECIFIED ) {
387
+ return ;
388
+ }
387
389
intent .putExtra (EXTRA_PROVISIONING_MAIN_COLOR , mCurrentColor );
388
390
}
389
391
@@ -471,8 +473,7 @@ public void onClick(View view) {
471
473
@ Override
472
474
public void onColorSelected (int colorValue , String id ) {
473
475
mCurrentColor = colorValue ;
474
- mColorValue .setText (String .format (ColorPicker .COLOR_STRING_FORMATTER , colorValue ));
475
- mColorPreviewView .setImageTintList (ColorStateList .valueOf (colorValue ));
476
+ updateColorUi ();
476
477
}
477
478
478
479
@ Override
@@ -500,4 +501,15 @@ private Intent getGetContentIntent() {
500
501
private boolean canAnAppHandleGetContent () {
501
502
return getGetContentIntent ().resolveActivity (getActivity ().getPackageManager ()) != null ;
502
503
}
504
+
505
+ private void updateColorUi () {
506
+ if (mCurrentColor != NO_COLOR_SPECIFIED ) {
507
+ mColorValue .setText (String .format (ColorPicker .COLOR_STRING_FORMATTER , mCurrentColor ));
508
+ mColorPreviewView .setImageTintList (ColorStateList .valueOf (mCurrentColor ));
509
+ mColorPreviewView .setVisibility (View .VISIBLE );
510
+ } else {
511
+ mColorValue .setText ("" );
512
+ mColorPreviewView .setVisibility (View .GONE );
513
+ }
514
+ }
503
515
}
0 commit comments