1class com/android/hoststubgen/test/tinyframework/TinyFrameworkForTextPolicy keep 2 field stub keep 3 # field remove remove # Implicitly remove 4 method <init> ()V keep 5 method addOne (I)I keep 6 method addOneInner keep 7 method toBeRemoved (Ljava/lang/String;)V remove 8 method addTwo (I)I @addTwo_host 9 # method addTwo_host (I)I # used as a substitute 10 method nativeAddThree @addThree_host 11 # method addThree_host (I)I # used as a substitute 12 method unsupportedMethod ()Ljava/lang/String; throw 13 method visibleButUsesUnsupportedMethod ()Ljava/lang/String; keep 14 method toBeIgnoredObj ()Ljava/lang/String; ignore 15 method toBeIgnoredV ()V ignore 16 method toBeIgnoredZ ()Z ignore 17 method toBeIgnoredB ()B ignore 18 method toBeIgnoredC ()C ignore 19 method toBeIgnoredS ()S ignore 20 method toBeIgnoredI ()I ignore 21 method toBeIgnoredL ()L ignore 22 method toBeIgnoredF ()F ignore 23 method toBeIgnoredD ()D ignore 24 25# Class load hook 26class com/android/hoststubgen/test/tinyframework/TinyFrameworkForTextPolicy ~com.android.hoststubgen.test.tinyframework.TinyFrameworkClassLoadHook.onClassLoaded 27 28# Heuristics rule: Stub all the AIDL classes. 29class :aidl keepclass 30 31# Heuristics rule: Stub all the R classes. 32class :r keepclass 33 34# Default is "remove", so let's put all the base classes / interfaces in the stub first. 35class com.android.hoststubgen.test.tinyframework.subclasstest.C1 keep 36class com.android.hoststubgen.test.tinyframework.subclasstest.C2 keep 37class com.android.hoststubgen.test.tinyframework.subclasstest.C3 keep 38class com.android.hoststubgen.test.tinyframework.subclasstest.CA keep 39class com.android.hoststubgen.test.tinyframework.subclasstest.CB keep 40class com.android.hoststubgen.test.tinyframework.subclasstest.I1 keep 41class com.android.hoststubgen.test.tinyframework.subclasstest.I2 keep 42class com.android.hoststubgen.test.tinyframework.subclasstest.I3 keep 43class com.android.hoststubgen.test.tinyframework.subclasstest.IA keep 44class com.android.hoststubgen.test.tinyframework.subclasstest.IB keep 45 46# Then define inheritance based policies. 47class *com.android.hoststubgen.test.tinyframework.subclasstest.C1 keep 48class *com.android.hoststubgen.test.tinyframework.subclasstest.CA remove 49 50class *com.android.hoststubgen.test.tinyframework.subclasstest.I1 keep 51class *com.android.hoststubgen.test.tinyframework.subclasstest.IA remove 52 53# Test package directive 54package com.android.hoststubgen.test.tinyframework.packagetest keep 55class com.android.hoststubgen.test.tinyframework.packagetest.B remove 56class com.android.hoststubgen.test.tinyframework.packagetest.sub.B remove 57# The following rules are the same as above 58# class com.android.hoststubgen.test.tinyframework.packagetest.A keep 59# class com.android.hoststubgen.test.tinyframework.packagetest.sub.A keep 60 61# Used to test method call replacement. 62class com.android.hoststubgen.test.tinyframework.TinyFrameworkMethodCallReplace keepclass 63 method originalAdd (II)I @com.android.hoststubgen.test.tinyframework.TinyFrameworkMethodCallReplace$ReplaceTo.add 64 65# Used to test method call replacement. 66# Note because java.lang.Thread is _not_ within the tiny-framework jar, the policy ("keep") 67# doesn't realy matter. 68class java.lang.Thread keep 69 method start ()V @com.android.hoststubgen.test.tinyframework.TinyFrameworkMethodCallReplace$ReplaceTo.startThread 70 71 72# "rename" takes a type internal name, so '/'s is used as a separator. 73# The leading / in the prefix is not needed (it'll be stripped), but it's added to make 74# sure the stripping works. 75rename ^.*/TinyFrameworkToBeRenamed$ /rename_prefix/ 76