# NetworkFactory is included in telephony-common and services.net
# Rename the non-jarjared, services.net version to avoid conflicts.
# This causes two NetworkFactory classes to appear in the test package (one used
# by services-net and one by telephony-common), similarly to what happens on a
# real device, except that in the test they have different package names.
rule android.net.NetworkFactory* android.net.services.NetworkFactory@1

# Telephony-common has already included net-utils-framework-common lib and jarjars
# the package name. FrameworksTelephonyTests also includes net-utils-framework-common
# via net-tests-utils and tries to jarjar it again. Rename the package names with
# a different prefix in the test jarjar rule to avoid duplicate jar entries.
rule com.android.net.module.util.** com.android.internal.telephony.util.test.@1
# Similarly, this is needed for the build utils.
rule com.android.modules.utils.** com.android.internal.telephony.util.test.@1
