Home | History | Annotate | Download | only in internal
      1 /*
      2  * Copyright (c) 2013 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 
     18 package com.android.ims.internal;
     19 
     20 import com.android.ims.ImsConfigListener;
     21 
     22 /**
     23  * Provides APIs to get/set the IMS service feature/capability/parameters.
     24  * The config items include:
     25  * 1) Items provisioned by the operator.
     26  * 2) Items configured by user. Mainly service feature class.
     27  *
     28  * {@hide}
     29  */
     30 interface IImsConfig {
     31     /**
     32      * Gets the value for ims service/capabilities parameters from the provisioned
     33      * value storage. Synchronous blocking call.
     34      *
     35      * @param item, as defined in com.android.ims.ImsConfig#ConfigConstants.
     36      * @return value in Integer format.
     37      */
     38     int getProvisionedValue(int item);
     39 
     40     /**
     41      * Gets the value for ims service/capabilities parameters from the provisioned
     42      * value storage. Synchronous blocking call.
     43      *
     44      * @param item, as defined in com.android.ims.ImsConfig#ConfigConstants.
     45      * @return value in String format.
     46      */
     47     String getProvisionedStringValue(int item);
     48 
     49     /**
     50      * Sets the value for IMS service/capabilities parameters by the operator device
     51      * management entity. It sets the config item value in the provisioned storage
     52      * from which the master value is derived. Synchronous blocking call.
     53      *
     54      * @param item, as defined in com.android.ims.ImsConfig#ConfigConstants.
     55      * @param value in Integer format.
     56      * @return as defined in com.android.ims.ImsConfig#OperationStatusConstants.
     57      */
     58     int setProvisionedValue(int item, int value);
     59 
     60     /**
     61      * Sets the value for IMS service/capabilities parameters by the operator device
     62      * management entity. It sets the config item value in the provisioned storage
     63      * from which the master value is derived.  Synchronous blocking call.
     64      *
     65      * @param item, as defined in com.android.ims.ImsConfig#ConfigConstants.
     66      * @param value in String format.
     67      * @return as defined in com.android.ims.ImsConfig#OperationStatusConstants.
     68      */
     69     int setProvisionedStringValue(int item, String value);
     70 
     71     /**
     72      * Gets the value of the specified IMS feature item for specified network type.
     73      * This operation gets the feature config value from the master storage (i.e. final
     74      * value). Asynchronous non-blocking call.
     75      *
     76      * @param feature. as defined in com.android.ims.ImsConfig#FeatureConstants.
     77      * @param network. as defined in android.telephony.TelephonyManager#NETWORK_TYPE_XXX.
     78      * @param listener. feature value returned asynchronously through listener.
     79      * @return void
     80      */
     81     oneway void getFeatureValue(int feature, int network, ImsConfigListener listener);
     82 
     83     /**
     84      * Sets the value for IMS feature item for specified network type.
     85      * This operation stores the user setting in setting db from which master db
     86      * is dervied.
     87      *
     88      * @param feature. as defined in com.android.ims.ImsConfig#FeatureConstants.
     89      * @param network. as defined in android.telephony.TelephonyManager#NETWORK_TYPE_XXX.
     90      * @param value. as defined in com.android.ims.ImsConfig#FeatureValueConstants.
     91      * @param listener, provided if caller needs to be notified for set result.
     92      * @return void
     93      */
     94     oneway void setFeatureValue(int feature, int network, int value, ImsConfigListener listener);
     95 
     96     /**
     97      * Gets the value for IMS volte provisioned.
     98      * This should be the same as the operator provisioned value if applies.
     99      *
    100      * @return void
    101      */
    102     boolean getVolteProvisioned();
    103 
    104     /**
    105      *
    106      * Gets the value for ims fature item video quality.
    107      *
    108      * @param listener. Video quality value returned asynchronously through listener.
    109      * @return void
    110      */
    111     oneway void getVideoQuality(ImsConfigListener listener);
    112 
    113     /**
    114      * Sets the value for IMS feature item video quality.
    115      *
    116      * @param quality, defines the value of video quality.
    117      * @param listener, provided if caller needs to be notified for set result.
    118      * @return void
    119      *
    120      * @throws ImsException if calling the IMS service results in an error.
    121      */
    122      oneway void setVideoQuality(int quality, ImsConfigListener listener);
    123 }
    124