| OLD | NEW | 
|    1 // Copyright 2015 The Chromium Authors. All rights reserved. |    1 // Copyright 2015 The Chromium Authors. All rights reserved. | 
|    2 // Use of this source code is governed by a BSD-style license that can be |    2 // Use of this source code is governed by a BSD-style license that can be | 
|    3 // found in the LICENSE file. |    3 // found in the LICENSE file. | 
|    4  |    4  | 
|    5 package org.chromium.incrementalinstall; |    5 package org.chromium.incrementalinstall; | 
|    6  |    6  | 
|    7 import android.content.Context; |    7 import android.content.Context; | 
|    8 import android.os.Build; |    8 import android.os.Build; | 
|    9 import android.util.Log; |    9 import android.util.Log; | 
|   10  |   10  | 
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  224     private Object[] addDexElements(File[] files, File optimizedDirectory, Objec
     t[] curDexElements) |  224     private Object[] addDexElements(File[] files, File optimizedDirectory, Objec
     t[] curDexElements) | 
|  225             throws ReflectiveOperationException { |  225             throws ReflectiveOperationException { | 
|  226         Class<?> entryClazz = Class.forName("dalvik.system.DexPathList$Element")
     ; |  226         Class<?> entryClazz = Class.forName("dalvik.system.DexPathList$Element")
     ; | 
|  227         Class<?> clazz = Class.forName("dalvik.system.DexPathList"); |  227         Class<?> clazz = Class.forName("dalvik.system.DexPathList"); | 
|  228         Object[] ret = |  228         Object[] ret = | 
|  229                 Reflect.concatArrays(curDexElements, curDexElements, new Object[
     files.length]); |  229                 Reflect.concatArrays(curDexElements, curDexElements, new Object[
     files.length]); | 
|  230         File emptyDir = new File(""); |  230         File emptyDir = new File(""); | 
|  231         for (int i = 0; i < files.length; ++i) { |  231         for (int i = 0; i < files.length; ++i) { | 
|  232             File file = files[i]; |  232             File file = files[i]; | 
|  233             Object dexFile; |  233             Object dexFile; | 
|  234             if ("N".equals(Build.VERSION.CODENAME)) { |  234             if (Build.VERSION.CODENAME.equals("N") | 
 |  235                     || Build.VERSION.SDK_INT > Build.VERSION_CODES.M) { | 
|  235                 // loadDexFile requires that ret contain all previously added el
     ements. |  236                 // loadDexFile requires that ret contain all previously added el
     ements. | 
|  236                 dexFile = Reflect.invokeMethod(clazz, "loadDexFile", file, optim
     izedDirectory, |  237                 dexFile = Reflect.invokeMethod(clazz, "loadDexFile", file, optim
     izedDirectory, | 
|  237                                                mClassLoader, ret); |  238                                                mClassLoader, ret); | 
|  238             } else { |  239             } else { | 
|  239                 dexFile = Reflect.invokeMethod(clazz, "loadDexFile", file, optim
     izedDirectory); |  240                 dexFile = Reflect.invokeMethod(clazz, "loadDexFile", file, optim
     izedDirectory); | 
|  240             } |  241             } | 
|  241             ret[curDexElements.length + i] = |  242             ret[curDexElements.length + i] = | 
|  242                     Reflect.newInstance(entryClazz, emptyDir, false, file, dexFi
     le); |  243                     Reflect.newInstance(entryClazz, emptyDir, false, file, dexFi
     le); | 
|  243         } |  244         } | 
|  244         return ret; |  245         return ret; | 
|  245     } |  246     } | 
|  246 } |  247 } | 
| OLD | NEW |