1  /*
2   * Copyright (C) 2023 The Android Open Source Project
3   *
4   * Licensed under the Apache License, Version 2.0 (the "License");
5   * you may not use this file except in compliance with the License.
6   * You may obtain a copy of the License at
7   *
8   *      http://www.apache.org/licenses/LICENSE-2.0
9   *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  package com.android.systemui.statusbar.pipeline.mobile.util
18  
19  import android.telephony.SubscriptionInfo
20  import android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID
21  
22  /** Fake of [SubscriptionManagerProxy] for easy testing */
23  class FakeSubscriptionManagerProxy(
24      /** Set the default data subId to be returned in [getDefaultDataSubscriptionId] */
25      var defaultDataSubId: Int = INVALID_SUBSCRIPTION_ID,
26      var activeSubscriptionInfo: SubscriptionInfo? = null
27  ) : SubscriptionManagerProxy {
getDefaultDataSubscriptionIdnull28      override fun getDefaultDataSubscriptionId(): Int = defaultDataSubId
29  
30      override fun isValidSubscriptionId(subId: Int): Boolean {
31          return subId > -1
32      }
33  
getActiveSubscriptionInfonull34      override suspend fun getActiveSubscriptionInfo(subId: Int): SubscriptionInfo? {
35          return activeSubscriptionInfo
36      }
37  
38      /** Sets the active subscription info. */
setActiveSubscriptionInfonull39      fun setActiveSubscriptionInfo(subId: Int, isEmbedded: Boolean = false) {
40          activeSubscriptionInfo =
41              SubscriptionInfo.Builder().setId(subId).setEmbedded(isEmbedded).build()
42      }
43  }
44