public VKParameters getPreparedParameters() {
    if (mPreparedParameters == null) {
      mPreparedParameters = new VKParameters(mMethodParameters);

      // Set current access token from SDK object
      VKAccessToken token = VKSdk.getAccessToken();
      if (token != null) mPreparedParameters.put(VKApiConst.ACCESS_TOKEN, token.accessToken);
      if (!this.secure)
        if (token != null && (token.secret != null || token.httpsRequired)) {
          this.secure = true;
        }
      // Set actual version of API
      mPreparedParameters.put(VKApiConst.VERSION, VKSdkVersion.API_VERSION);
      // Set preferred language for request
      mPreparedParameters.put(VKApiConst.LANG, getLang());

      if (this.secure) {
        // If request is secure, we need all urls as https
        mPreparedParameters.put(VKApiConst.HTTPS, "1");
      }
      if (token != null && token.secret != null) {
        // If it not, generate signature of request
        String sig = generateSig(token);
        mPreparedParameters.put(VKApiConst.SIG, sig);
      }
      // From that moment you cannot modify parameters.
      // Specially for http loading
    }
    return mPreparedParameters;
  }
  private boolean processCommonError(VKError error) {
    if (error.errorCode == VKError.VK_API_ERROR) {
      if (error.apiError.errorCode == 14) {
        error.apiError.request = this;
        this.mLoadingOperation = null;
        VKSdk.instance().sdkListener().onCaptchaError(error.apiError);
        return true;
      } else if (error.apiError.errorCode == 16) {
        VKAccessToken token = VKSdk.getAccessToken();
        token.httpsRequired = true;
        repeat();
        return true;
      } else if (error.apiError.errorCode == 17) {
        Intent i = new Intent(VKUIHelper.getTopActivity(), VKOpenAuthActivity.class);
        i.putExtra(VKOpenAuthActivity.VK_EXTRA_VALIDATION_URL, error.apiError.redirectUri);
        i.putExtra(VKOpenAuthActivity.VK_EXTRA_VALIDATION_REQUEST, this.registerObject());
        VKUIHelper.getTopActivity().startActivityForResult(i, VKSdk.VK_SDK_REQUEST_CODE);
        return true;
      }
    }

    return false;
  }
 public void stopTracking() {
   VKSdk.removeVKTokenTracker(this);
   isTracking = false;
 }
 public void startTracking() {
   VKSdk.addVKTokenTracker(this);
   isTracking = true;
 }