Esempio n. 1
0
 /**
  * Scan available networks.
  *
  * @param phone
  * @param response
  * @param slotId
  */
 public static void getAvailableNetworks(Phone phone, Message response, int slotId) {
   Assert.assertNotNull(phone);
   if (GeminiUtils.isGeminiSupport()) {
     PhoneLog.d(TAG, "[getAvailableNetworks], slotId = " + slotId);
     if (GeminiUtils.isValidSlot(slotId)) {
       ((GeminiPhone) phone).getAvailableNetworksGemini(response, slotId);
     }
   } else {
     phone.getAvailableNetworks(response);
   }
 }
        /**
         * Starts a query with a INetworkQueryServiceCallback object if one has not been started
         * yet. Ignore the new query request if the query has been started already. Either way,
         * place the callback object in the queue to be notified upon request completion.
         */
        public void startNetworkQuery(INetworkQueryServiceCallback cb) {
          if (cb != null) {
            // register the callback to the list of callbacks.
            synchronized (mCallbacks) {
              mCallbacks.register(cb);
              if (DBG) {
                log("registering callback " + cb.getClass().toString());
              }

              switch (mState) {
                case QUERY_READY:
                  // TODO: we may want to install a timeout here in case we
                  // do not get a timely response from the RIL.
                  /// M: support gemini phone
                  if (FeatureOption.MTK_GEMINI_SUPPORT) {
                    int msgType = getSimMsgType(mSimId);
                    log("startNetworkQuery---msgType=" + msgType);
                    mGeminiPhone.getAvailableNetworksGemini(
                        mHandler.obtainMessage(msgType), mSimId);
                  } else {
                    mPhone.getAvailableNetworks(
                        mHandler.obtainMessage(EVENT_NETWORK_SCAN_COMPLETED));
                  }
                  mState = QUERY_IS_RUNNING;
                  if (DBG) {
                    log("starting new query");
                  }
                  break;

                  // do nothing if we're currently busy.
                case QUERY_IS_RUNNING:
                  if (DBG) {
                    log("query already in progress");
                  }
                  break;
                default:
                  break;
              }
            }
          }
        }