• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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