Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c59f4d8c authored by Deepanshu Gupta's avatar Deepanshu Gupta Committed by Android Git Automerger
Browse files

am 4d4430bf: am 84fd4af0: Merge "Make DatePicker rendering not fail." into mnc-dev

* commit '4d4430bf':
  Make DatePicker rendering not fail.
parents 3bfea127 4d4430bf
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -16,8 +16,12 @@

package android.view;

import com.android.layoutlib.bridge.android.BridgeContext;
import com.android.tools.layoutlib.annotations.LayoutlibDelegate;

import android.content.Context;
import android.os.IBinder;

/**
 * Delegate used to provide new implementation of a select few methods of {@link View}
 *
@@ -31,4 +35,13 @@ public class View_Delegate {
    /*package*/ static boolean isInEditMode(View thisView) {
        return true;
    }

    @LayoutlibDelegate
    /*package*/ static IBinder getWindowToken(View thisView) {
        Context baseContext = BridgeContext.getBaseContext(thisView.getContext());
        if (baseContext instanceof BridgeContext) {
            return ((BridgeContext) baseContext).getBinder();
        }
        return null;
    }
}
+90 −26
Original line number Diff line number Diff line
@@ -65,8 +65,11 @@ import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.IInterface;
import android.os.Looper;
import android.os.Parcel;
import android.os.PowerManager;
import android.os.RemoteException;
import android.os.UserHandle;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
@@ -82,6 +85,7 @@ import android.view.accessibility.AccessibilityManager;
import android.view.textservice.TextServicesManager;

import java.io.File;
import java.io.FileDescriptor;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
@@ -139,6 +143,7 @@ public final class BridgeContext extends Context {
    private final Stack<BridgeXmlBlockParser> mParserStack = new Stack<BridgeXmlBlockParser>();
    private SharedPreferences mSharedPreferences;
    private ClassLoader mClassLoader;
    private IBinder mBinder;

    /**
     * @param projectKey An Object identifying the project. This is used for the cache mechanism.
@@ -708,6 +713,10 @@ public final class BridgeContext extends Context {
                }
            }
        } else if (defStyleRes != 0) {
            StyleResourceValue item = mDynamicIdToStyleMap.get(defStyleRes);
            if (item != null) {
                defStyleValues = item;
            } else {
                boolean isFrameworkRes = true;
                Pair<ResourceType, String> value = Bridge.resolveResourceId(defStyleRes);
                if (value == null) {
@@ -718,8 +727,7 @@ public final class BridgeContext extends Context {
                if (value != null) {
                    if ((value.getFirst() == ResourceType.STYLE)) {
                        // look for the style in all resources:
                    StyleResourceValue item = mRenderResources.getStyle(value.getSecond(),
                            isFrameworkRes);
                        item = mRenderResources.getStyle(value.getSecond(), isFrameworkRes);
                        if (item != null) {
                            if (defaultPropMap != null) {
                                defaultPropMap.put("style", item.getName());
@@ -748,6 +756,7 @@ public final class BridgeContext extends Context {
                            null);
                }
            }
        }

        String appNamespace = mLayoutlibCallback.getNamespace();

@@ -996,6 +1005,61 @@ public final class BridgeContext extends Context {
        return context;
    }

    public IBinder getBinder() {
        if (mBinder == null) {
            // create a dummy binder. We only need it be not null.
            mBinder = new IBinder() {
                @Override
                public String getInterfaceDescriptor() throws RemoteException {
                    return null;
                }

                @Override
                public boolean pingBinder() {
                    return false;
                }

                @Override
                public boolean isBinderAlive() {
                    return false;
                }

                @Override
                public IInterface queryLocalInterface(String descriptor) {
                    return null;
                }

                @Override
                public void dump(FileDescriptor fd, String[] args) throws RemoteException {

                }

                @Override
                public void dumpAsync(FileDescriptor fd, String[] args) throws RemoteException {

                }

                @Override
                public boolean transact(int code, Parcel data, Parcel reply, int flags)
                        throws RemoteException {
                    return false;
                }

                @Override
                public void linkToDeath(DeathRecipient recipient, int flags)
                        throws RemoteException {

                }

                @Override
                public boolean unlinkToDeath(DeathRecipient recipient, int flags) {
                    return false;
                }
            };
        }
        return mBinder;
    }

    //------------ NOT OVERRIDEN --------------------

    @Override
+1 −0
Original line number Diff line number Diff line
@@ -174,6 +174,7 @@ public final class CreateInfo implements ICreateInfo {
        "android.view.Display#getWindowManager",
        "android.view.LayoutInflater#rInflate",
        "android.view.LayoutInflater#parseInclude",
        "android.view.View#getWindowToken",
        "android.view.View#isInEditMode",
        "android.view.ViewRootImpl#isInTouchMode",
        "android.view.WindowManagerGlobal#getWindowManagerService",