44//
55package com .microsoft .applications .events ;
66
7- import static java .nio .charset .StandardCharsets .UTF_8 ;
8-
97import android .Manifest .permission ;
108import android .annotation .SuppressLint ;
119import android .annotation .TargetApi ;
1513import android .content .IntentFilter ;
1614import android .content .pm .PackageInfo ;
1715import android .content .pm .PackageManager ;
18- import android .content .res .Configuration ;
1916import android .net .ConnectivityManager ;
2017import android .net .Network ;
2118import android .net .NetworkCapabilities ;
3633import java .text .SimpleDateFormat ;
3734import java .util .Calendar ;
3835import java .util .Date ;
39- import java .util .Iterator ;
4036import java .util .List ;
4137import java .util .Locale ;
4238import java .util .Map ;
@@ -186,6 +182,17 @@ public class HttpClient {
186182 private static final String ANDROID_DEVICE_CLASS_PC = "Android.PC" ;
187183 private static final String ANDROID_DEVICE_CLASS_PHONE = "Android.Phone" ;
188184
185+ public interface Configuration {
186+ boolean isInitializeDeviceInfo ();
187+
188+ class Default implements Configuration {
189+ @ Override
190+ public boolean isInitializeDeviceInfo () {
191+ return true ;
192+ }
193+ }
194+ }
195+
189196 /** Shim FutureTask: we would like to @Keep the cancel method for JNI */
190197 static class FutureShim extends FutureTask <Boolean > {
191198 FutureShim (HttpClientRequest inner ) {
@@ -200,15 +207,17 @@ public boolean cancel(boolean mayInterruptIfRunning) {
200207 }
201208
202209 public HttpClient (Context context ) {
203- this (context , new HttpClientRequest .Factory .AndroidUrlConnection ());
210+ this (context , new HttpClientRequest .Factory .AndroidUrlConnection (), new Configuration . Default () );
204211 }
205212
206- public HttpClient (Context context , HttpClientRequest .Factory requestFactory ) {
213+ public HttpClient (Context context , HttpClientRequest .Factory requestFactory , Configuration configuration ) {
207214 m_context = context ;
208215 m_requestFactory = requestFactory ;
209216 String path = System .getProperty ("java.io.tmpdir" );
210217 setCacheFilePath (path );
211- setDeviceInfo (calculateID (context ), Build .MANUFACTURER , Build .MODEL );
218+ if (configuration .isInitializeDeviceInfo ()) {
219+ setDeviceInfo (calculateID (context ), Build .MANUFACTURER , Build .MODEL );
220+ }
212221 calculateAndSetSystemInfo (context );
213222 m_executor = createExecutor ();
214223 createClientInstance ();
@@ -316,7 +325,7 @@ private String calculateID(android.content.Context context) {
316325 }
317326
318327 private String getDeviceClass (android .content .Context context ) {
319- if (context .getResources ().getConfiguration ().isLayoutSizeAtLeast (Configuration .SCREENLAYOUT_SIZE_LARGE )) {
328+ if (context .getResources ().getConfiguration ().isLayoutSizeAtLeast (android . content . res . Configuration .SCREENLAYOUT_SIZE_LARGE )) {
320329 return ANDROID_DEVICE_CLASS_PC ;
321330 } else {
322331 return ANDROID_DEVICE_CLASS_PHONE ;
0 commit comments