public static void loadFromSettings(final AppSettings newSettings) { profiles.clear(); stack.clear(); boolean fromJSON = false; final String str = newSettings.tapProfiles; if (LengthUtils.isNotEmpty(str)) { try { final List<TouchProfile> list = fromJSON(str); for (final TouchProfile p : list) { profiles.put(p.name, p); } } catch (final Throwable ex) { LCTX.e("Error on tap configuration load: ", ex); } fromJSON = profiles.containsKey(DEFAULT_PROFILE); } if (!fromJSON) { if (LCTX.isDebugEnabled()) { LCTX.d("Creating default tap configuration..."); } final TouchProfile def = addProfile(DEFAULT_PROFILE); { final Region r = def.addRegion(0, 0, 100, 100); r.setAction(Touch.DoubleTap, R.id.actions_openOptionsMenu, true); } { final Region r = def.addRegion(0, 0, 100, 10); r.setAction(Touch.SingleTap, R.id.actions_verticalConfigScrollUp, true); } { final Region r = def.addRegion(0, 90, 100, 100); r.setAction(Touch.SingleTap, R.id.actions_verticalConfigScrollDown, true); } persist(); } stack.addFirst(profiles.get(DEFAULT_PROFILE)); }