# Copyright 2018 The Bazel Authors. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and

# Proguard configuration for :build_java8_legacy_dex

# Shrink only
-dontoptimize
-dontobfuscate

-dontskipnonpubliclibraryclasses

-keepattributes SourceFile,LineNumberTable,*Annotation*

# When keeping enums, keep all their values.
-keepclassmembers enum * {
    public static **[] values();
}

# Keep Serializable members magically invoked by the runtime.
-keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    private static final java.io.ObjectStreamField[] serialPersistentFields;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}

# Keep Externalizable members magically invoked by the runtime.
-keepclassmembers class * implements java.io.Externalizable {
  <init>();  # No-arg constructor required per spec
  public void readExternal(java.io.ObjectInput);
  public void writeExternal(java.io.ObjectOutput);
}
