@Override public void registerBridge(WebViewBridge webViewBridge, Object bridgeObject) { bridgeObject = mInjectorHelper.inject(mContext, bridgeObject); Class<?> clazz = bridgeObject.getClass(); BridgeObjectConfig config = mConfigCache.getBridgeObjectConfig(clazz); if (config == null) { Log.d(TAG, "Miss cache bridge config"); config = createBridgeConfig(bridgeObject); mConfigCache.putBridgeObjectConfig(clazz, config); } else Log.d(TAG, "Bridge config from cache"); webViewBridge.addBridgeObjectConfig(bridgeObject, config); }
private DomainConfig createDomainConfig(Class<?> clazz) { DomainConfig config = mConfigCache.getDomainConfig(clazz); if (config == null) { Domain domainAnn = (Domain) clazz.getAnnotation(Domain.class); if (domainAnn == null) throw new InvalidConfigurationRuntimeException("Must be defined as access domain"); config = new DomainConfig(domainAnn.value()); } else Log.d(TAG, "Domain config from cache"); return config; }
private LayoutConfig createLayoutConfig(Class<?> clazz) { LayoutConfig config = mConfigCache.getLayoutConfig(clazz); if (config == null) { Log.d(TAG, "Miss cache layout config"); Layout layoutAnn = (Layout) clazz.getAnnotation(Layout.class); if (layoutAnn == null) { throw new InvalidConfigurationRuntimeException("Must be defined as use layout"); } triaina.webview.annotation.WebViewBridgeResouce bridgeAnn = (triaina.webview.annotation.WebViewBridgeResouce) clazz.getAnnotation(triaina.webview.annotation.WebViewBridgeResouce.class); if (bridgeAnn == null) throw new InvalidConfigurationRuntimeException("Must be defined as use layout"); config = new LayoutConfig(layoutAnn.value(), bridgeAnn.value()); mConfigCache.putLayoutConfig(clazz, config); } else Log.d(TAG, "Layout config from cache"); return config; }