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

Commit b779065b authored by Steve Kondik's avatar Steve Kondik
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 a241d434
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -161,8 +161,6 @@ import com.android.server.policy.keyguard.KeyguardServiceDelegate;
import com.android.server.policy.keyguard.KeyguardServiceDelegate.DrawnListener;
import com.android.server.statusbar.StatusBarManagerInternal;

import dalvik.system.DexClassLoader;

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

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

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

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