package com.example.mortar.nodes; import android.content.Context; import android.content.ContextWrapper; import android.view.LayoutInflater; import com.zhuinden.servicetree.ServiceTree; /** * Created by Zhuinden on 2017.05.13.. */ public class NodeContextWrapper extends ContextWrapper { private LayoutInflater layoutInflater; static ServiceTree.Node get(Context context) { // noinspection ResourceType return (ServiceTree.Node)context.getSystemService(TreeNodes.NODE_TAG); } private final ServiceTree.Node node; public NodeContextWrapper(Context base, ServiceTree.Node node) { super(base); this.node = node; } @Override public Object getSystemService(String name) { if(Context.LAYOUT_INFLATER_SERVICE.equals(name)) { if(layoutInflater == null) { layoutInflater = LayoutInflater.from(getBaseContext()).cloneInContext(this); } return layoutInflater; } if(TreeNodes.NODE_TAG.equals(name)) { return node; } if(node.hasService(name)) { return node.getService(name); } return super.getSystemService(name); } }