1 package org.robolectric.shadows; 2 3 import static android.os.Build.VERSION_CODES.M; 4 5 import android.os.PersistableBundle; 6 import android.telephony.CarrierConfigManager; 7 import android.util.SparseArray; 8 import org.robolectric.annotation.Implementation; 9 import org.robolectric.annotation.Implements; 10 11 @Implements(value = CarrierConfigManager.class, minSdk = M) 12 public class ShadowCarrierConfigManager { 13 14 private SparseArray<PersistableBundle> bundles = new SparseArray<>(); 15 16 /** 17 * Returns {@link android.os.PersistableBundle} previously set by {@link #setConfigForSubId(int)}, 18 * or default values for an invalid {@code subId}. 19 */ 20 @Implementation getConfigForSubId(int subId)21 protected PersistableBundle getConfigForSubId(int subId) { 22 PersistableBundle persistableBundle = bundles.get(subId); 23 if (persistableBundle == null) { 24 return new PersistableBundle(); 25 } 26 return persistableBundle; 27 } 28 29 /** 30 * Sets that the {@code config} PersistableBundle for a particular {@code subId}; controls the 31 * return value of {@link CarrierConfigManager#getConfigForSubId()}. 32 */ setConfigForSubId(int subId, PersistableBundle config)33 public void setConfigForSubId(int subId, PersistableBundle config) { 34 bundles.put(subId, config); 35 } 36 } 37