Call getNetworkSlicingConfiguration to get Slicing information

Bug: 191628100
Test: Dial *#*#4636#*#*, check Log can see GET_SLICING_CONFIG in RIL log
Change-Id: I1efc504d84549b2a5e97c596f66443e0b8141aa0
diff --git a/src/com/android/phone/settings/RadioInfo.java b/src/com/android/phone/settings/RadioInfo.java
index 8c53971..b1ab413 100644
--- a/src/com/android/phone/settings/RadioInfo.java
+++ b/src/com/android/phone/settings/RadioInfo.java
@@ -17,6 +17,7 @@
 package com.android.phone.settings;
 
 import static android.net.ConnectivityManager.NetworkCallback;
+import static java.util.concurrent.TimeUnit.MILLISECONDS;
 
 import android.content.ComponentName;
 import android.content.Context;
@@ -96,8 +97,12 @@
 import java.net.HttpURLConnection;
 import java.net.URL;
 import java.util.List;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Executor;
 import java.util.concurrent.LinkedBlockingDeque;
 import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeoutException;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -301,6 +306,8 @@
         }
     };
 
+    private static final int DEFAULT_TIMEOUT_MS = 1000;
+
     // not final because we need to recreate this object to register on a new subId (b/117555407)
     private TelephonyCallback mTelephonyCallback = new RadioInfoTelephonyCallback();
     private class RadioInfoTelephonyCallback extends TelephonyCallback implements
@@ -1131,8 +1138,17 @@
             mNrFrequency.setText(ServiceState.frequencyRangeToString(ss.getNrFrequencyRange()));
         }
 
-        NetworkSlicingConfig slicingConfig = new NetworkSlicingConfig();
-        mNetworkSlicingConfig.setText(slicingConfig.toString());
+        Executor simpleExecutor = (r) -> r.run();
+        CompletableFuture<NetworkSlicingConfig> resultFuture = new CompletableFuture<>();
+        mTelephonyManager.getNetworkSlicingConfiguration(simpleExecutor, resultFuture::complete);
+        try {
+            NetworkSlicingConfig networkSlicingConfig =
+                resultFuture.get(DEFAULT_TIMEOUT_MS, MILLISECONDS);
+            mNetworkSlicingConfig.setText(networkSlicingConfig.toString());
+        } catch (ExecutionException | InterruptedException | TimeoutException e) {
+            Log.e(TAG, "Unable to get slicing config: " + e.toString());
+            mNetworkSlicingConfig.setText("Unable to get slicing config.");
+        }
 
     }