# Copyright 2017 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# When multidex is enabled, need to keep the @MainDex annotation so that it
# can be used to create the main dex list.
-keepattributes *Annotations*
-keep @interface org.chromium.base.annotations.MainDex

# Keep the members only if the class is kept. Also required for the annotation
# itself to be kept, which is necessary for main dex list processing.
-keepclassmembers,allowobfuscation class * {
  @**.MainDex *;
}
