1/* 2 * Copyright (C) 2014 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not 5 * use this file except in compliance with the License. You may obtain a copy of 6 * the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 * License for the specific language governing permissions and limitations under 14 * the License. 15 */ 16package com.android.multidexlegacyandexception; 17 18public class IntermediateClass { 19 20 public static int get1(boolean condition) { 21 return new ClassInSecondaryDex(condition).get1(); 22 } 23 24 public static int get2(boolean condition) { 25 return new ClassInSecondaryDex(condition).get2(); 26 } 27 28 public static int get3(boolean condition) { 29 ClassInSecondaryDex thrower = new ClassInSecondaryDex(condition); 30 try { 31 thrower.canThrow2(); 32 thrower.canThrow1(); 33 return 1; 34 } catch (ExceptionInMainDex e) { 35 return 10; 36 } catch (ExceptionInSecondaryDex e) { 37 return 11; 38 } catch (ExceptionInMainDex2 e) { 39 return 10; 40 } catch (ExceptionInSecondaryDex2 e) { 41 return 11; 42 } catch (OutOfMemoryError e) { 43 return 12; 44 } catch (CaughtOnlyException e) { 45 return 17; 46 } catch (ExceptionInSecondaryDexWithSuperInMain e) { 47 return 39; 48 } catch (SuperExceptionInSecondaryDex|SuperExceptionInMainDex|CaughtOnlyByIntermediateException e) { 49 return 23; 50 } 51 } 52 53 public static int get4(boolean condition) { 54 ClassInSecondaryDex thrower = new ClassInSecondaryDex(condition); 55 try { 56 thrower.canThrow2(); 57 thrower.canThrow1(); 58 return 1; 59 } catch (ExceptionInSecondaryDexWithSuperInMain e) { 60 return 39; 61 } catch (ExceptionInSecondaryDex e) { 62 return 11; 63 } catch (ExceptionInSecondaryDex2 e) { 64 return 11; 65 } catch (OutOfMemoryError e) { 66 return 12; 67 } catch (ExceptionInMainDex2 e) { 68 return 10; 69 } catch (ExceptionInMainDex e) { 70 return 10; 71 } catch (CaughtOnlyException e) { 72 return 17; 73 } catch (SuperExceptionInSecondaryDex e) { 74 } catch (SuperExceptionInMainDex e) { 75 } catch (CaughtOnlyByIntermediateException e) { 76 return 35; 77 } 78 return 39; 79 } 80 81 82 public static int get5(Throwable thrown) { 83 try { 84 ClassInSecondaryDex.canThrowAll(thrown); 85 return 1; 86 } catch (ExceptionInMainDex e) { 87 return 10; 88 } catch (ExceptionInSecondaryDex e) { 89 return 11; 90 } catch (ExceptionInMainDex2 e) { 91 return 12; 92 } catch (ExceptionInSecondaryDex2 e) { 93 return 13; 94 } catch (OutOfMemoryError e) { 95 return 14; 96 } catch (CaughtOnlyException e) { 97 return 17; 98 } catch (ExceptionInSecondaryDexWithSuperInMain e) { 99 return 39; 100 } catch (SuperExceptionInSecondaryDex|SuperExceptionInMainDex|CaughtOnlyByIntermediateException e) { 101 return 23; 102 } catch (Throwable e) { 103 return 37; 104 } 105 } 106 107} 108