/** This needs to return a string because of the tortured prefs access in GlobalSession. */ public String getSyncPrefsPath() throws GeneralSecurityException, UnsupportedEncodingException { String profile = getProfile(); String username = account.name; if (profile == null) { throw new IllegalStateException("Missing profile. Cannot fetch prefs."); } if (username == null) { throw new IllegalStateException("Missing username. Cannot fetch prefs."); } final String tokenServerURI = getTokenServerURI(); if (tokenServerURI == null) { throw new IllegalStateException("No token server URI. Cannot fetch prefs."); } final String fxaServerURI = getAccountServerURI(); if (fxaServerURI == null) { throw new IllegalStateException("No account server URI. Cannot fetch prefs."); } final String product = GlobalConstants.BROWSER_INTENT_PACKAGE + ".fxa"; final long version = CURRENT_PREFS_VERSION; // This is unique for each syncing 'view' of the account. final String serverURLThing = fxaServerURI + "!" + tokenServerURI; return Utils.getPrefsPath(product, username, serverURLThing, profile, version); }
private String constructPrefsPath(String product, long version, String extra) throws GeneralSecurityException, UnsupportedEncodingException { String profile = getProfile(); String username = account.name; if (profile == null) { throw new IllegalStateException("Missing profile. Cannot fetch prefs."); } if (username == null) { throw new IllegalStateException("Missing username. Cannot fetch prefs."); } final String fxaServerURI = getAccountServerURI(); if (fxaServerURI == null) { throw new IllegalStateException("No account server URI. Cannot fetch prefs."); } // This is unique for each syncing 'view' of the account. final String serverURLThing = fxaServerURI + "!" + extra; return Utils.getPrefsPath(product, username, serverURLThing, profile, version); }