// this method is used in the search network functionality. // in mobile network setting-> network operators @Override protected Object responseOperatorInfos(Parcel p) { String strings[] = (String[]) responseStrings(p); ArrayList<OperatorInfo> ret; if (strings.length % mQANElements != 0) { throw new RuntimeException( "RIL_REQUEST_QUERY_AVAILABLE_NETWORKS: invalid response. Got " + strings.length + " strings, expected multiple of " + mQANElements); } ret = new ArrayList<OperatorInfo>(strings.length / mQANElements); Operators init = null; if (strings.length != 0) { init = new Operators(); } for (int i = 0; i < strings.length; i += mQANElements) { String temp = init.unOptimizedOperatorReplace(strings[i + 0]); ret.add( new OperatorInfo( temp, // operatorAlphaLong temp, // operatorAlphaShort strings[i + 2], // operatorNumeric strings[i + 3])); // state } return ret; }
// CDMA FIXES, this fixes bogus values in nv/sim on d2/jf/t0 cdma family or bogus information // from sim card private Object operatorCheck(Parcel p) { String response[] = (String[]) responseStrings(p); for (int i = 0; i < 2; i++) { if (response[i] != null) { response[i] = Operators.operatorReplace(response[i]); } } return response; }