赞
踩
aosp 本身 bug,开启状态栏显示运营商时,会有 npe 问题
frameworks/base/packages/SystemUI/src/com/android/systemui/util/CarrierConfigTracker.java
@@ -213,6 +213,10 @@ public class CarrierConfigTracker
* @param subId the subscription id for which to query the config
*/
public boolean getShowOperatorNameInStatusBarConfig(int subId) {
+ //add for show OperatorName
+ if (true) {
+ return true;
+ }//end
if (mShowOperatorNameConfigs.indexOfKey(subId) >= 0) {
return mShowOperatorNameConfigs.get(subId);
} else {
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/OperatorNameViewController.java
@@ -93,9 +93,11 @@ public class OperatorNameViewController extends ViewController<OperatorNameView>
private SubInfo getDefaultSubInfo() {
int defaultSubId = SubscriptionManager.getDefaultDataSubscriptionId();
SubscriptionInfo sI = mKeyguardUpdateMonitor.getSubscriptionInfoForSubId(defaultSubId);
+ //fix when show operator sim cardout npe
return new SubInfo(
- sI.getSubscriptionId(),
- sI.getCarrierName(),
+ sI != null ? sI.getSubscriptionId() : 0,
+ sI != null ? sI.getDisplayName() : null,//中国电信
+ // sI.getCarrierName(),//CHN-CT — 中国电信
mKeyguardUpdateMonitor.getSimState(defaultSubId),
mKeyguardUpdateMonitor.getServiceState(defaultSubId));
}
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/fragment/CollapsedStatusBarFragment.java
@@ -614,8 +614,12 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
int subId = SubscriptionManager.getDefaultDataSubscriptionId();
if (mCarrierConfigTracker.getShowOperatorNameInStatusBarConfig(subId)) {
ViewStub stub = mStatusBar.findViewById(R.id.operator_name);
+ //add for fix aosp bug open operator show crash
+ View operatorFrameView = stub.inflate();
+ OperatorNameView operatorNameView = (OperatorNameView)operatorFrameView.findViewById(R.id.operator_name);
mOperatorNameViewController =
- mOperatorNameViewControllerFactory.create((OperatorNameView) stub.inflate());
+ mOperatorNameViewControllerFactory.create(operatorNameView);//end
+ // mOperatorNameViewControllerFactory.create((OperatorNameView) stub.inflate());//aosp bug
mOperatorNameViewController.init();
// This view should not be visible on lock-screen
if (mKeyguardStateController.isShowing()) {
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。