-# Trivial Proguard configuration file
+# Proguard configuration files for Emacs
#
# Copyright (C) 2024 Free Software Foundation, Inc.
#
# You should have received a copy of the GNU General Public License
# along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
#
-# The effect of these two lines is to prevent the removal of symbol
-# names, which Emacs requires to link to functions defined in Java.
+# The effect of the following lines is to inhibit the removal of variable or
+# method symbol names from symbols referenced from C.
--keep,allowoptimization interface org.gnu.emacs.*
--keep,allowoptimization class org.gnu.emacs.* { <fields>; <methods>; }
+-keep,allowoptimization class org.gnu.emacs.EmacsClipboard { <methods>; }
+-keep,allowoptimization class org.gnu.emacs.EmacsContextMenu { <methods>; }
+-keep,allowoptimization class org.gnu.emacs.EmacsCursor { <methods>; }
+-keep,allowoptimization class org.gnu.emacs.EmacsDesktopNotification { <methods>; }
+-keep,allowoptimization class org.gnu.emacs.EmacsDialog { <methods>; }
+-keep,allowoptimization class org.gnu.emacs.EmacsDirectoryEntry { <fields>; }
+-keep,allowoptimization class org.gnu.emacs.EmacsFontDriver { <methods>; }
+-keep,allowoptimization class org.gnu.emacs.EmacsFontDriver$* { <fields>; }
+-keep,allowoptimization class org.gnu.emacs.EmacsGC { <methods>; <fields>; }
+-keep,allowoptimization class org.gnu.emacs.EmacsHandleObject { <methods>; }
+-keep,allowoptimization class org.gnu.emacs.EmacsPixmap { <methods>; }
+-keep,allowoptimization class org.gnu.emacs.EmacsService { <methods>; }
+-keep,allowoptimization class org.gnu.emacs.EmacsWindow { <methods>; }
+-keep,allowoptimization class org.gnu.emacs.EmacsNative { <methods>; }
+-keep,allowoptimization class org.gnu.emacs.EmacsNoninteractive { <methods>; }
+-keep,allowoptimization interface org.gnu.emacs.EmacsDrawable { <methods>; }
+
+# And these lines inhibit the deletion of symbols that are referenced by
+# the operating system while enabling the compiler to minify or delete
+# symbols only referenced internally.
+
+-keep,allowoptimization,allowaccessmodification public class * extends android.app.Activity
+-keep,allowoptimization,allowaccessmodification public class * extends android.app.Application
+-keep,allowoptimization,allowaccessmodification public class * extends android.app.Service
+-keep,allowoptimization,allowaccessmodification public class * extends android.content.BroadcastReceiver
+-keep,allowoptimization,allowaccessmodification public class * extends android.content.ContentProvider
+
+# Local Variables:
+# truncate-lines: t
+# indent-tabs-mode: nil
+# End: