Merge changes from topic "146593004"

* changes:
  Use proper Telephony API to supply sim pin and puk.
  Hook supplyPin and supplyPuk to proper impl with subId specified
This commit is contained in:
Xiangyu/Malcolm Chen
2020-01-04 02:07:01 +00:00
committed by Android (Google) Code Review
4 changed files with 37 additions and 75 deletions

View File

@@ -26,8 +26,6 @@ import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -37,7 +35,6 @@ import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
import com.android.internal.telephony.ITelephony;
import com.android.internal.telephony.PhoneConstants;
import com.android.systemui.Dependency;
import com.android.systemui.R;
@@ -258,12 +255,22 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView {
@Override
public void run() {
try {
if (DEBUG) {
Log.v(TAG, "call supplyPinReportResultForSubscriber(subid=" + mSubId + ")");
}
final int[] result = ITelephony.Stub.asInterface(ServiceManager
.checkService("phone")).supplyPinReportResultForSubscriber(mSubId, mPin);
if (DEBUG) {
Log.v(TAG, "call supplyPinReportResultForSubscriber(subid=" + mSubId + ")");
}
TelephonyManager telephonyManager =
((TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE))
.createForSubscriptionId(mSubId);
final int[] result = telephonyManager.supplyPinReportResult(mPin);
if (result == null || result.length == 0) {
Log.e(TAG, "Error result for supplyPinReportResult.");
post(new Runnable() {
@Override
public void run() {
onSimCheckResponse(PhoneConstants.PIN_GENERAL_FAILURE, -1);
}
});
} else {
if (DEBUG) {
Log.v(TAG, "supplyPinReportResult returned: " + result[0] + " " + result[1]);
}
@@ -273,14 +280,6 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView {
onSimCheckResponse(result[0], result[1]);
}
});
} catch (RemoteException e) {
Log.e(TAG, "RemoteException for supplyPinReportResult:", e);
post(new Runnable() {
@Override
public void run() {
onSimCheckResponse(PhoneConstants.PIN_GENERAL_FAILURE, -1);
}
});
}
}
}

View File

@@ -25,8 +25,6 @@ import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -36,7 +34,6 @@ import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
import com.android.internal.telephony.ITelephony;
import com.android.internal.telephony.PhoneConstants;
import com.android.systemui.Dependency;
import com.android.systemui.R;
@@ -318,10 +315,20 @@ public class KeyguardSimPukView extends KeyguardPinBasedInputView {
@Override
public void run() {
try {
if (DEBUG) Log.v(TAG, "call supplyPukReportResult()");
final int[] result = ITelephony.Stub.asInterface(ServiceManager
.checkService("phone")).supplyPukReportResultForSubscriber(mSubId, mPuk, mPin);
if (DEBUG) Log.v(TAG, "call supplyPukReportResult()");
TelephonyManager telephonyManager =
((TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE))
.createForSubscriptionId(mSubId);
final int[] result = telephonyManager.supplyPukReportResult(mPuk, mPin);
if (result == null || result.length == 0) {
Log.e(TAG, "Error result for supplyPukReportResult.");
post(new Runnable() {
@Override
public void run() {
onSimLockChangedResponse(PhoneConstants.PIN_GENERAL_FAILURE, -1);
}
});
} else {
if (DEBUG) {
Log.v(TAG, "supplyPukReportResult returned: " + result[0] + " " + result[1]);
}
@@ -331,14 +338,6 @@ public class KeyguardSimPukView extends KeyguardPinBasedInputView {
onSimLockChangedResponse(result[0], result[1]);
}
});
} catch (RemoteException e) {
Log.e(TAG, "RemoteException for supplyPukReportResult:", e);
post(new Runnable() {
@Override
public void run() {
onSimLockChangedResponse(PhoneConstants.PIN_GENERAL_FAILURE, -1);
}
});
}
}
}

View File

@@ -8201,9 +8201,9 @@ public class TelephonyManager {
try {
ITelephony telephony = getITelephony();
if (telephony != null)
return telephony.supplyPin(pin);
return telephony.supplyPinForSubscriber(getSubId(), pin);
} catch (RemoteException e) {
Log.e(TAG, "Error calling ITelephony#supplyPin", e);
Log.e(TAG, "Error calling ITelephony#supplyPinForSubscriber", e);
}
return false;
}
@@ -8215,9 +8215,9 @@ public class TelephonyManager {
try {
ITelephony telephony = getITelephony();
if (telephony != null)
return telephony.supplyPuk(puk, pin);
return telephony.supplyPukForSubscriber(getSubId(), puk, pin);
} catch (RemoteException e) {
Log.e(TAG, "Error calling ITelephony#supplyPuk", e);
Log.e(TAG, "Error calling ITelephony#supplyPukForSubscriber", e);
}
return false;
}
@@ -8229,9 +8229,9 @@ public class TelephonyManager {
try {
ITelephony telephony = getITelephony();
if (telephony != null)
return telephony.supplyPinReportResult(pin);
return telephony.supplyPinReportResultForSubscriber(getSubId(), pin);
} catch (RemoteException e) {
Log.e(TAG, "Error calling ITelephony#supplyPinReportResult", e);
Log.e(TAG, "Error calling ITelephony#supplyPinReportResultForSubscriber", e);
}
return new int[0];
}
@@ -8243,7 +8243,7 @@ public class TelephonyManager {
try {
ITelephony telephony = getITelephony();
if (telephony != null)
return telephony.supplyPukReportResult(puk, pin);
return telephony.supplyPukReportResultForSubscriber(getSubId(), puk, pin);
} catch (RemoteException e) {
Log.e(TAG, "Error calling ITelephony#]", e);
}

View File

@@ -117,13 +117,6 @@ interface ITelephony {
*/
boolean isRadioOnForSubscriberWithFeature(int subId, String callingPackage, String callingFeatureId);
/**
* Supply a pin to unlock the SIM. Blocks until a result is determined.
* @param pin The pin to check.
* @return whether the operation was a success.
*/
@UnsupportedAppUsage
boolean supplyPin(String pin);
/**
* Supply a pin to unlock the SIM for particular subId.
@@ -134,15 +127,6 @@ interface ITelephony {
*/
boolean supplyPinForSubscriber(int subId, String pin);
/**
* Supply puk to unlock the SIM and set SIM pin to new pin.
* Blocks until a result is determined.
* @param puk The puk to check.
* pin The new pin to be set in SIM
* @return whether the operation was a success.
*/
boolean supplyPuk(String puk, String pin);
/**
* Supply puk to unlock the SIM and set SIM pin to new pin.
* Blocks until a result is determined.
@@ -153,15 +137,6 @@ interface ITelephony {
*/
boolean supplyPukForSubscriber(int subId, String puk, String pin);
/**
* Supply a pin to unlock the SIM. Blocks until a result is determined.
* Returns a specific success/error code.
* @param pin The pin to check.
* @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code
* retValue[1] = number of attempts remaining if known otherwise -1
*/
int[] supplyPinReportResult(String pin);
/**
* Supply a pin to unlock the SIM. Blocks until a result is determined.
* Returns a specific success/error code.
@@ -171,17 +146,6 @@ interface ITelephony {
*/
int[] supplyPinReportResultForSubscriber(int subId, String pin);
/**
* Supply puk to unlock the SIM and set SIM pin to new pin.
* Blocks until a result is determined.
* Returns a specific success/error code
* @param puk The puk to check
* pin The pin to check.
* @return retValue[0] = Phone.PIN_RESULT_SUCCESS on success. Otherwise error code
* retValue[1] = number of attempts remaining if known otherwise -1
*/
int[] supplyPukReportResult(String puk, String pin);
/**
* Supply puk to unlock the SIM and set SIM pin to new pin.
* Blocks until a result is determined.