Source:
<code>protected void fetchRemoteData() { fetchCategories(); if (mSite.isJetpackConnected()) { <START> fetchJetpackSettings(); <END> } WordPress.getRestClientUtils().getGeneralSettings( mSite.getSiteId(), new RestRequest.Listener() { @Override public void onResponse(JSONObject response) { AppLog.d(AppLog.T.API, "Received response to Settings REST request."); credentialsVerified(true); mRemoteSettings.localTableId = mSite.getId(); deserializeDotComRestResponse(mSite, response); if (!mRemoteSettings.equals(mSettings)) { final Map<String, String> currentPostFormats = mSettings.postFormats; boolean location = mSettings.location; boolean optimizedImage = mSettings.optimizedImage; int maxImageWidth = mSettings.maxImageWidth; int imageQualitySetting = mSettings.imageQualitySetting; boolean optimizedVideo = mSettings.optimizedVideo; int maxVideoWidth = mSettings.maxVideoWidth; int videoEncoderBitrate = mSettings.videoEncoderBitrate; mSettings.copyFrom(mRemoteSettings); mSettings.postFormats = currentPostFormats; mSettings.location = location; mSettings.optimizedImage = optimizedImage; mSettings.maxImageWidth = maxImageWidth; mSettings.imageQualitySetting = imageQualitySetting; mSettings.optimizedVideo = optimizedVideo; mSettings.maxVideoWidth = maxVideoWidth; mSettings.videoEncoderBitrate = videoEncoderBitrate; SiteSettingsTable.saveSettings(mSettings); notifyUpdatedOnUiThread(null); } } }, new RestRequest.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { AppLog.w(AppLog.T.API, "Error response to Settings REST request: " + error); notifyUpdatedOnUiThread(error); } }); }</code><technical_language>this kind create a race condition? fetching settings fetching jetpack settings happen time I change model. I if synchronized methods help, I some issues in current state</technical_language>

Target:
protected void fetchRemoteData() { fetchCategories(); WordPress.getRestClientUtils().getGeneralSettings( mSite.getSiteId(), new RestRequest.Listener() { @Override public void onResponse(JSONObject response) { AppLog.d(AppLog.T.API, "Received response to Settings REST request."); credentialsVerified(true); mRemoteSettings.localTableId = mSite.getId(); deserializeDotComRestResponse(mSite, response); if (!mRemoteSettings.equals(mSettings)) { final Map<String, String> currentPostFormats = mSettings.postFormats; boolean location = mSettings.location; boolean optimizedImage = mSettings.optimizedImage; int maxImageWidth = mSettings.maxImageWidth; int imageQualitySetting = mSettings.imageQualitySetting; boolean optimizedVideo = mSettings.optimizedVideo; int maxVideoWidth = mSettings.maxVideoWidth; int videoEncoderBitrate = mSettings.videoEncoderBitrate; mSettings.copyFrom(mRemoteSettings); mSettings.postFormats = currentPostFormats; mSettings.location = location; mSettings.optimizedImage = optimizedImage; mSettings.maxImageWidth = maxImageWidth; mSettings.imageQualitySetting = imageQualitySetting; mSettings.optimizedVideo = optimizedVideo; mSettings.maxVideoWidth = maxVideoWidth; mSettings.videoEncoderBitrate = videoEncoderBitrate; SiteSettingsTable.saveSettings(mSettings); notifyUpdatedOnUiThread(null); } if (mSite.isJetpackConnected()) { fetchJetpackSettings(); } } }, new RestRequest.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { AppLog.w(AppLog.T.API, "Error response to Settings REST request: " + error); notifyUpdatedOnUiThread(error); } }); }