Android: Simplify GetJavaEnumName

We can call name() on the base class java.lang.Enum instead of the
specific enum subclass.

Bug: webrtc:8278
Change-Id: I12f8354d99e48b4a5e3d3eaff74a85ac417df0b3
Reviewed-on: https://webrtc-review.googlesource.com/24440
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20790}
diff --git a/sdk/android/src/jni/jni_helpers.cc b/sdk/android/src/jni/jni_helpers.cc
index 6331a64..201520c 100644
--- a/sdk/android/src/jni/jni_helpers.cc
+++ b/sdk/android/src/jni/jni_helpers.cc
@@ -311,16 +311,13 @@
                            state_class, index);
 }
 
-std::string GetJavaEnumName(JNIEnv* jni,
-                            const std::string& className,
-                            jobject j_enum) {
-  jclass enumClass = FindClass(jni, className.c_str());
+std::string GetJavaEnumName(JNIEnv* jni, jobject j_enum) {
+  jclass enum_class = GetClass(jni, "java/lang/Enum");
   jmethodID nameMethod =
-      GetMethodID(jni, enumClass, "name", "()Ljava/lang/String;");
+      GetMethodID(jni, enum_class, "name", "()Ljava/lang/String;");
   jstring name =
       reinterpret_cast<jstring>(jni->CallObjectMethod(j_enum, nameMethod));
-  CHECK_EXCEPTION(jni) << "error during CallObjectMethod for " << className
-                       << ".name";
+  CHECK_EXCEPTION(jni);
   return JavaToStdString(jni, name);
 }
 
diff --git a/sdk/android/src/jni/jni_helpers.h b/sdk/android/src/jni/jni_helpers.h
index e08e4b2..e18edc2 100644
--- a/sdk/android/src/jni/jni_helpers.h
+++ b/sdk/android/src/jni/jni_helpers.h
@@ -130,9 +130,7 @@
                                                        jobject j_map);
 
 // Returns the name of a Java enum.
-std::string GetJavaEnumName(JNIEnv* jni,
-                            const std::string& className,
-                            jobject j_enum);
+std::string GetJavaEnumName(JNIEnv* jni, jobject j_enum);
 
 jobject NewGlobalRef(JNIEnv* jni, jobject o);
 
diff --git a/sdk/android/src/jni/pc/androidnetworkmonitor_jni.cc b/sdk/android/src/jni/pc/androidnetworkmonitor_jni.cc
index 6494e72..ff1f4f6 100644
--- a/sdk/android/src/jni/pc/androidnetworkmonitor_jni.cc
+++ b/sdk/android/src/jni/pc/androidnetworkmonitor_jni.cc
@@ -31,9 +31,7 @@
 int AndroidNetworkMonitor::android_sdk_int_ = 0;
 
 static NetworkType GetNetworkTypeFromJava(JNIEnv* jni, jobject j_network_type) {
-  std::string enum_name =
-      GetJavaEnumName(jni, "org/webrtc/NetworkMonitorAutoDetect$ConnectionType",
-                      j_network_type);
+  std::string enum_name = GetJavaEnumName(jni, j_network_type);
   if (enum_name == "CONNECTION_UNKNOWN") {
     return NetworkType::NETWORK_UNKNOWN;
   }
diff --git a/sdk/android/src/jni/pc/java_native_conversion.cc b/sdk/android/src/jni/pc/java_native_conversion.cc
index 1eadfa3..31668e9 100644
--- a/sdk/android/src/jni/pc/java_native_conversion.cc
+++ b/sdk/android/src/jni/pc/java_native_conversion.cc
@@ -208,9 +208,7 @@
 PeerConnectionInterface::IceTransportsType JavaToNativeIceTransportsType(
     JNIEnv* jni,
     jobject j_ice_transports_type) {
-  std::string enum_name =
-      GetJavaEnumName(jni, "org/webrtc/PeerConnection$IceTransportsType",
-                      j_ice_transports_type);
+  std::string enum_name = GetJavaEnumName(jni, j_ice_transports_type);
 
   if (enum_name == "ALL")
     return PeerConnectionInterface::kAll;
@@ -231,8 +229,7 @@
 PeerConnectionInterface::BundlePolicy JavaToNativeBundlePolicy(
     JNIEnv* jni,
     jobject j_bundle_policy) {
-  std::string enum_name = GetJavaEnumName(
-      jni, "org/webrtc/PeerConnection$BundlePolicy", j_bundle_policy);
+  std::string enum_name = GetJavaEnumName(jni, j_bundle_policy);
 
   if (enum_name == "BALANCED")
     return PeerConnectionInterface::kBundlePolicyBalanced;
@@ -250,8 +247,7 @@
 PeerConnectionInterface::RtcpMuxPolicy JavaToNativeRtcpMuxPolicy(
     JNIEnv* jni,
     jobject j_rtcp_mux_policy) {
-  std::string enum_name = GetJavaEnumName(
-      jni, "org/webrtc/PeerConnection$RtcpMuxPolicy", j_rtcp_mux_policy);
+  std::string enum_name = GetJavaEnumName(jni, j_rtcp_mux_policy);
 
   if (enum_name == "NEGOTIATE")
     return PeerConnectionInterface::kRtcpMuxPolicyNegotiate;
@@ -266,9 +262,7 @@
 PeerConnectionInterface::TcpCandidatePolicy JavaToNativeTcpCandidatePolicy(
     JNIEnv* jni,
     jobject j_tcp_candidate_policy) {
-  std::string enum_name =
-      GetJavaEnumName(jni, "org/webrtc/PeerConnection$TcpCandidatePolicy",
-                      j_tcp_candidate_policy);
+  std::string enum_name = GetJavaEnumName(jni, j_tcp_candidate_policy);
 
   if (enum_name == "ENABLED")
     return PeerConnectionInterface::kTcpCandidatePolicyEnabled;
@@ -283,9 +277,7 @@
 PeerConnectionInterface::CandidateNetworkPolicy
 JavaToNativeCandidateNetworkPolicy(JNIEnv* jni,
                                    jobject j_candidate_network_policy) {
-  std::string enum_name =
-      GetJavaEnumName(jni, "org/webrtc/PeerConnection$CandidateNetworkPolicy",
-                      j_candidate_network_policy);
+  std::string enum_name = GetJavaEnumName(jni, j_candidate_network_policy);
 
   if (enum_name == "ALL")
     return PeerConnectionInterface::kCandidateNetworkPolicyAll;
@@ -299,8 +291,7 @@
 }
 
 rtc::KeyType JavaToNativeKeyType(JNIEnv* jni, jobject j_key_type) {
-  std::string enum_name =
-      GetJavaEnumName(jni, "org/webrtc/PeerConnection$KeyType", j_key_type);
+  std::string enum_name = GetJavaEnumName(jni, j_key_type);
 
   if (enum_name == "RSA")
     return rtc::KT_RSA;
@@ -313,9 +304,7 @@
 
 PeerConnectionInterface::ContinualGatheringPolicy
 JavaToNativeContinualGatheringPolicy(JNIEnv* jni, jobject j_gathering_policy) {
-  std::string enum_name =
-      GetJavaEnumName(jni, "org/webrtc/PeerConnection$ContinualGatheringPolicy",
-                      j_gathering_policy);
+  std::string enum_name = GetJavaEnumName(jni, j_gathering_policy);
   if (enum_name == "GATHER_ONCE")
     return PeerConnectionInterface::GATHER_ONCE;
 
@@ -330,9 +319,7 @@
 PeerConnectionInterface::TlsCertPolicy JavaToNativeTlsCertPolicy(
     JNIEnv* jni,
     jobject j_ice_server_tls_cert_policy) {
-  std::string enum_name =
-      GetJavaEnumName(jni, "org/webrtc/PeerConnection$TlsCertPolicy",
-                      j_ice_server_tls_cert_policy);
+  std::string enum_name = GetJavaEnumName(jni, j_ice_server_tls_cert_policy);
 
   if (enum_name == "TLS_CERT_POLICY_SECURE")
     return PeerConnectionInterface::kTlsCertPolicySecure;