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

Unverified Commit 904383de authored by Steve Kondik's avatar Steve Kondik Committed by Michael Bestas
Browse files

policy: Use PathClassLoader for loading the keyhandler

 * Fix crash on start due to getCacheDir throwing an exception.
 * We can't do this anymore due to the new storage/crypto in N.

Change-Id: I28426a5df824460ebc74aa19068192adb00d4f7c
parent 9d7667c4
Loading
Loading
Loading
Loading
+3 −6
Original line number Original line Diff line number Diff line
@@ -162,8 +162,6 @@ import com.android.server.policy.keyguard.KeyguardServiceDelegate;
import com.android.server.policy.keyguard.KeyguardServiceDelegate.DrawnListener;
import com.android.server.policy.keyguard.KeyguardServiceDelegate.DrawnListener;
import com.android.server.statusbar.StatusBarManagerInternal;
import com.android.server.statusbar.StatusBarManagerInternal;


import dalvik.system.DexClassLoader;

import java.io.File;
import java.io.File;
import java.io.FileReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.IOException;
@@ -173,6 +171,7 @@ import java.util.List;
import java.lang.reflect.Constructor;
import java.lang.reflect.Constructor;


import cyanogenmod.providers.CMSettings;
import cyanogenmod.providers.CMSettings;
import dalvik.system.PathClassLoader;


/**
/**
 * WindowManagerPolicy implementation for the Android phone UI.  This
 * WindowManagerPolicy implementation for the Android phone UI.  This
@@ -2060,10 +2059,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                com.android.internal.R.string.config_deviceKeyHandlerClass);
                com.android.internal.R.string.config_deviceKeyHandlerClass);


        if (!deviceKeyHandlerLib.isEmpty() && !deviceKeyHandlerClass.isEmpty()) {
        if (!deviceKeyHandlerLib.isEmpty() && !deviceKeyHandlerClass.isEmpty()) {
            DexClassLoader loader =  new DexClassLoader(deviceKeyHandlerLib,
            PathClassLoader loader =  new PathClassLoader(deviceKeyHandlerLib,
                    new ContextWrapper(mContext).getCacheDir().getAbsolutePath(),
                    getClass().getClassLoader());
                    null,
                    ClassLoader.getSystemClassLoader());
            try {
            try {
                Class<?> klass = loader.loadClass(deviceKeyHandlerClass);
                Class<?> klass = loader.loadClass(deviceKeyHandlerClass);
                Constructor<?> constructor = klass.getConstructor(Context.class);
                Constructor<?> constructor = klass.getConstructor(Context.class);