Add DISALLOW_CONFIG_MOBILE_NETWORKS restriction check to changing pin
(ChageIccPinScreen) and enabling/disabling (EnableIccPinScreen) pin screens.

The EditTexts, Buttons, and TextViews have been disabled so they can not be clicked and their alpha is set to 0.5f to visually indicate that they are disabled.

Test: manual
Bug: 281850678
Bug: 281849809
Change-Id: I7420c7c6cbe3244bf50067ce4c0e08fe06ee345c
diff --git a/src/com/android/phone/ChangeIccPinScreen.java b/src/com/android/phone/ChangeIccPinScreen.java
index 5369aa3..0784495 100644
--- a/src/com/android/phone/ChangeIccPinScreen.java
+++ b/src/com/android/phone/ChangeIccPinScreen.java
@@ -18,12 +18,14 @@
 
 import android.app.Activity;
 import android.app.AlertDialog;
+import android.content.Context;
 import android.content.Intent;
 import android.content.res.Resources;
 import android.os.AsyncResult;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
+import android.os.UserManager;
 import android.text.method.DigitsKeyListener;
 import android.util.Log;
 import android.view.View;
@@ -46,12 +48,12 @@
     private static final boolean DBG = false;
 
     private static final int EVENT_PIN_CHANGED = 100;
-    
+
     private enum EntryState {
         ES_PIN,
         ES_PUK
     }
-    
+
     private EntryState mState;
 
     private static final int NO_ERROR = 0;
@@ -61,6 +63,8 @@
     private static final int MIN_PIN_LENGTH = 4;
     private static final int MAX_PIN_LENGTH = 8;
 
+    private UserManager mUserManager;
+    private boolean mDisallowedConfig;
     private Phone mPhone;
     private boolean mChangePin2;
     private TextView mBadPinError;
@@ -91,49 +95,74 @@
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
 
+        mUserManager = this.getSystemService(UserManager.class);
+        if (mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)) {
+            mDisallowedConfig = true;
+        }
+
         mPhone = PhoneGlobals.getPhone();
 
         resolveIntent();
 
         setContentView(R.layout.change_sim_pin_screen);
+        setupView();
 
+        mState = EntryState.ES_PIN;
+    }
+
+    private void setupView() {
         mOldPin = (EditText) findViewById(R.id.old_pin);
-        mOldPin.setKeyListener(DigitsKeyListener.getInstance());
-        mOldPin.setMovementMethod(null);
-        mOldPin.setOnClickListener(mClicked);
-
         mNewPin1 = (EditText) findViewById(R.id.new_pin1);
-        mNewPin1.setKeyListener(DigitsKeyListener.getInstance());
-        mNewPin1.setMovementMethod(null);
-        mNewPin1.setOnClickListener(mClicked);
-
         mNewPin2 = (EditText) findViewById(R.id.new_pin2);
-        mNewPin2.setKeyListener(DigitsKeyListener.getInstance());
-        mNewPin2.setMovementMethod(null);
-        mNewPin2.setOnClickListener(mClicked);
-
         mBadPinError = (TextView) findViewById(R.id.bad_pin);
         mMismatchError = (TextView) findViewById(R.id.mismatch);
-
         mButton = (Button) findViewById(R.id.button);
-        mButton.setOnClickListener(mClicked);
-
         mScrollView = (ScrollView) findViewById(R.id.scroll);
-        
         mPUKCode = (EditText) findViewById(R.id.puk_code);
-        mPUKCode.setKeyListener(DigitsKeyListener.getInstance());
-        mPUKCode.setMovementMethod(null);
-        mPUKCode.setOnClickListener(mClicked);
-        
         mPUKSubmit = (Button) findViewById(R.id.puk_submit);
-        mPUKSubmit.setOnClickListener(mClicked);
-
         mIccPUKPanel = (LinearLayout) findViewById(R.id.puk_panel);
-
         int id = mChangePin2 ? R.string.change_pin2 : R.string.change_pin;
         setTitle(getResources().getText(id));
-        
-        mState = EntryState.ES_PIN;
+
+        if (mDisallowedConfig) {
+            mOldPin.setEnabled(false);
+            mOldPin.setAlpha(.5f);
+
+            mNewPin1.setEnabled(false);
+            mNewPin1.setAlpha(.5f);
+
+            mNewPin2.setEnabled(false);
+            mNewPin2.setAlpha(.5f);
+
+            mButton.setEnabled(false);
+            mButton.setAlpha(.5f);
+
+            mPUKCode.setEnabled(false);
+            mPUKCode.setAlpha(.5f);
+
+            mPUKSubmit.setEnabled(false);
+            mPUKSubmit.setAlpha(.5f);
+        } else {
+            mOldPin.setKeyListener(DigitsKeyListener.getInstance());
+            mOldPin.setMovementMethod(null);
+            mOldPin.setOnClickListener(mClicked);
+
+            mNewPin1.setKeyListener(DigitsKeyListener.getInstance());
+            mNewPin1.setMovementMethod(null);
+            mNewPin1.setOnClickListener(mClicked);
+
+            mNewPin2.setKeyListener(DigitsKeyListener.getInstance());
+            mNewPin2.setMovementMethod(null);
+            mNewPin2.setOnClickListener(mClicked);
+
+            mButton.setOnClickListener(mClicked);
+
+            mPUKCode.setKeyListener(DigitsKeyListener.getInstance());
+            mPUKCode.setMovementMethod(null);
+            mPUKCode.setOnClickListener(mClicked);
+
+            mPUKSubmit.setOnClickListener(mClicked);
+        }
     }
 
     private void resolveIntent() {
diff --git a/src/com/android/phone/EnableIccPinScreen.java b/src/com/android/phone/EnableIccPinScreen.java
index 160978f..092fa64 100644
--- a/src/com/android/phone/EnableIccPinScreen.java
+++ b/src/com/android/phone/EnableIccPinScreen.java
@@ -17,10 +17,12 @@
 package com.android.phone;
 
 import android.app.Activity;
+import android.content.Context;
 import android.os.AsyncResult;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
+import android.os.UserManager;
 import android.text.TextUtils;
 import android.text.method.DigitsKeyListener;
 import android.util.Log;
@@ -41,11 +43,13 @@
     private static final int ENABLE_ICC_PIN_COMPLETE = 100;
     private static final boolean DBG = false;
 
+    private UserManager mUserManager;
     private LinearLayout mPinFieldContainer;
     private EditText mPinField;
     private TextView mStatusField;
     private boolean mEnable;
     private Phone mPhone;
+    private boolean mDisallowedConfig = false;
 
     private Handler mHandler = new Handler() {
         public void handleMessage(Message msg) {
@@ -64,6 +68,11 @@
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
 
+        mUserManager = this.getSystemService(UserManager.class);
+        if (mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)) {
+            mDisallowedConfig = true;
+        }
+
         setContentView(R.layout.enable_sim_pin_screen);
         setupView();
 
@@ -76,12 +85,20 @@
 
     private void setupView() {
         mPinField = (EditText) findViewById(R.id.pin);
-        mPinField.setKeyListener(DigitsKeyListener.getInstance());
-        mPinField.setMovementMethod(null);
-        mPinField.setOnClickListener(mClicked);
-
         mPinFieldContainer = (LinearLayout) findViewById(R.id.pinc);
         mStatusField = (TextView) findViewById(R.id.status);
+
+        if (mDisallowedConfig) {
+            mPinField.setEnabled(false);
+            mPinField.setAlpha(.5f);
+
+            mPinFieldContainer.setEnabled(false);
+            mPinFieldContainer.setAlpha(.5f);
+        } else {
+            mPinField.setKeyListener(DigitsKeyListener.getInstance());
+            mPinField.setMovementMethod(null);
+            mPinField.setOnClickListener(mClicked);
+        }
     }
 
     private void showStatus(CharSequence statusMsg) {