private void readSuperProperties() { String props = mStoredPreferences.getString("super_properties", "{}"); if (MPConfig.DEBUG) Log.d(LOGTAG, "Loading Super Properties " + props); try { mSuperProperties = new JSONObject(props); } catch (JSONException e) { Log.e(LOGTAG, "Cannot parse stored superProperties"); mSuperProperties = new JSONObject(); storeSuperProperties(); } }
/** * Register properties that will be sent with every subsequent call to {@link #track(String, * JSONObject)}. * * <p>SuperProperties are a collection of properties that will be sent with every event to * Mixpanel, and persist beyond the lifetime of your application. * * <p>Setting a superProperty with registerSuperProperties will store a new superProperty, * possibly overwriting any existing superProperty with the same name (to set a superProperty only * if it is currently unset, use {@link #registerSuperPropertiesOnce(JSONObject)}) * * <p>SuperProperties will persist even if your application is taken completely out of memory. to * remove a superProperty, call {@link #unregisterSuperProperty(String)} or {@link * #clearSuperProperties()} * * @param superProperties A JSONObject containing super properties to register * @see #registerSuperPropertiesOnce(JSONObject) * @see #unregisterSuperProperty(String) * @see #clearSuperProperties() */ public void registerSuperProperties(JSONObject superProperties) { if (MPConfig.DEBUG) Log.d(LOGTAG, "registerSuperProperties"); for (Iterator<?> iter = superProperties.keys(); iter.hasNext(); ) { String key = (String) iter.next(); try { mSuperProperties.put(key, superProperties.get(key)); } catch (JSONException e) { Log.e(LOGTAG, "Exception registering super property.", e); } } storeSuperProperties(); }
/** * Remove a single superProperty, so that it will not be sent with future calls to {@link * #track(String, JSONObject)}. * * <p>If there is a superProperty registered with the given name, it will be permanently removed * from the existing superProperties. To clear all superProperties, use {@link * #clearSuperProperties()} * * @param superPropertyName * @see #registerSuperProperties(JSONObject) */ public void unregisterSuperProperty(String superPropertyName) { mSuperProperties.remove(superPropertyName); storeSuperProperties(); }