rcs-service: Sync the rcs_service_aidl project and the rcs_service_api projects.

 - Continue development of public account message.
 - Continue development of mCloud file sharing.

Change-Id: I6c2bbfee8e07f63a914cc89d157d1ee7c5ef6738
diff --git a/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/capability/ICapabilityApi.aidl b/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/capability/ICapabilityApi.aidl
index 3ad43c6..e313487 100644
--- a/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/capability/ICapabilityApi.aidl
+++ b/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/capability/ICapabilityApi.aidl
@@ -23,8 +23,10 @@
 package com.suntek.mway.rcs.client.aidl.capability;
 
 import com.suntek.mway.rcs.client.aidl.plugin.callback.ICapabiltyListener;
+import com.suntek.mway.rcs.client.aidl.capability.RCSCapabilities;
 
 interface ICapabilityApi
 {
     void findCapabilityByNumber(String number, ICapabiltyListener listener);
+    RCSCapabilities getMyCapabilities();
 }
diff --git a/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/constant/BroadcastConstants.java b/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/constant/BroadcastConstants.java
index f87b752..781589c 100644
--- a/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/constant/BroadcastConstants.java
+++ b/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/constant/BroadcastConstants.java
@@ -65,7 +65,7 @@
 
     /**  Notify Native UI that message has been transfered to SMS. */
     public static final String UI_MESSAGE_TRANSFER_SMS = "com.suntek.mway.rcs.ACTION_UI_MESSAGE_TRANSFER_SMS";
-    
+
     /**  Notify Native UI that download paid emoction result. */
     public static final String UI_MESSAGE_PAID_EMO_DOWNLOAD_RESULT = "com.suntek.mway.rcs.ACTION_UI_MESSAGE_PAID_EMO_DOWNLOAD_RESULTS";
 
diff --git a/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/mcloud/IMcloudFileApi.aidl b/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/mcloud/IMcloudFileApi.aidl
index 69dcfba..2d2aa07 100644
--- a/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/mcloud/IMcloudFileApi.aidl
+++ b/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/mcloud/IMcloudFileApi.aidl
@@ -22,12 +22,14 @@
  */
 package com.suntek.mway.rcs.client.aidl.mcloud;
 
+import com.suntek.mway.rcs.client.aidl.plugin.callback.IMcloudOperationCtrl;
+
 interface IMcloudFileApi {
-    void putFile(String localPath, String remotePath, int transOper);
+    IMcloudOperationCtrl putFile(String localPath, String remotePath, int transOper);
     void shareFile(String fullPathInID, String shareDesc);
     void shareFileAndSend(String fullPathInID, String shareDesc, String contact, long threadId, String smsContentTemp);
     void getShareFileList(int beginIndex, int endIndex);
-    void downloadFileFromUrl(String remoteUrl, String fileName, int transOper);
+    IMcloudOperationCtrl downloadFileFromUrl(String remoteUrl, String fileName, int transOper);
 
     void shareFileAndSendGroup(String fullPathInID, String shareDesc, long threadId, String conversationId, String groupId);
     void shareFileAndSendOne2Many(String fullPathInID, String shareDesc, in List<String> contacts, long threadId, String smsContentTemp);
diff --git a/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/plugin/callback/IPublicAccountCallbackAPI.aidl b/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/plugin/callback/IPublicAccountCallbackAPI.aidl
index 029bb99..22f0f67 100644
--- a/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/plugin/callback/IPublicAccountCallbackAPI.aidl
+++ b/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/plugin/callback/IPublicAccountCallbackAPI.aidl
@@ -24,6 +24,7 @@
 
 import com.suntek.mway.rcs.client.aidl.plugin.entity.pubacct.MsgContent;
 import com.suntek.mway.rcs.client.aidl.plugin.entity.pubacct.MenuInfo;
+import com.suntek.mway.rcs.client.aidl.plugin.entity.pubacct.MenuInfoMode;
 import com.suntek.mway.rcs.client.aidl.plugin.entity.pubacct.PublicAccounts;
 import com.suntek.mway.rcs.client.aidl.plugin.entity.pubacct.PublicAccountsDetail;
 import com.suntek.mway.rcs.client.aidl.plugin.entity.pubacct.PublicAccounts;
@@ -72,9 +73,9 @@
     /**
      * response the query public account menu info
      * @param result if query success
-     * @param menus the menu's entity list
+     * @param menus the menu's entity
      */
-    void respGetPublicMenuInfo( boolean result, in List<MenuInfo> menus );
+    void respGetPublicMenuInfo( boolean result, in MenuInfoMode menuInfoMode );
     
     /**
      * response the query user follow public account list
diff --git a/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/plugin/entity/emoticon/EmoticonConstant.java b/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/plugin/entity/emoticon/EmoticonConstant.java
index 9ac2b8d..e32932a 100644
--- a/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/plugin/entity/emoticon/EmoticonConstant.java
+++ b/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/plugin/entity/emoticon/EmoticonConstant.java
@@ -35,4 +35,14 @@
 
     /** The Constant EMO_PACKAGE_FILE. */
     public static final int EMO_PACKAGE_FILE = 3;
+
+    /** The Constant EMO_DOWNLOAD_SUCCESS. */
+    public static final int EMO_DOWNLOAD_SUCCESS = 1;
+
+    /** The Constant EMO_DOWNLOAD_FAILURE. */
+    public static final int EMO_DOWNLOAD_FAILURE = 0;
+
+    /** The Constant EMO_DOWNLOAD_LOADING. */
+    public static final int EMO_DOWNLOAD_LOADING = 2;
+
 }
diff --git a/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/plugin/entity/mcloudfile/TransNode.java b/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/plugin/entity/mcloudfile/TransNode.java
index c363eab..2434f5f 100644
--- a/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/plugin/entity/mcloudfile/TransNode.java
+++ b/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/plugin/entity/mcloudfile/TransNode.java
@@ -337,9 +337,7 @@
 
         RESUME,
 
-        GET_INFO,
-
-        PAUSE;
+        GET_INFO;
 
         public static TransOper valueOf( int ordinal )
         {
diff --git a/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/plugin/entity/pubacct/PublicAccountConstant.java b/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/plugin/entity/pubacct/PublicAccountConstant.java
index 5e408d3..79949d0 100644
--- a/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/plugin/entity/pubacct/PublicAccountConstant.java
+++ b/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/plugin/entity/pubacct/PublicAccountConstant.java
@@ -28,6 +28,9 @@
  */
 public class PublicAccountConstant {
 
+    /** account pre number. */
+    public static final int ACCOUNT_PRE_NUMBER = 8;
+
     /** order type: 0 is desc order by the follow time. */
     public static final int ACCOUNTLIST_ORDER_TYPE_FOLLOWTIME_DESC = 0;
 
diff --git a/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/plugin/entity/pubacct/PublicAccountsDetail.java b/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/plugin/entity/pubacct/PublicAccountsDetail.java
index cd484b0..74608f7 100644
--- a/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/plugin/entity/pubacct/PublicAccountsDetail.java
+++ b/rcs_service_aidl/src/com/suntek/mway/rcs/client/aidl/plugin/entity/pubacct/PublicAccountsDetail.java
@@ -25,7 +25,6 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 
-// TODO: Auto-generated Javadoc
 /**
  * <p>
  * Title: The public account detail entity
@@ -105,6 +104,9 @@
     /** The sip uri. */
 //    private String    sipUri;
 
+    /** The number. */
+    private String    number;
+
     /**
      * Instantiates a new public accounts detail.
      */
@@ -166,6 +168,7 @@
         dest.writeString( qrCode );
         dest.writeString( logoUrl );
 //        dest.writeString( sipUri );
+        dest.writeString( number );
     }
 
     /**
@@ -198,6 +201,7 @@
         qrCode = source.readString();
         logoUrl = source.readString();
 //        sipUri = source.readString();
+        number = source.readString();
     }
 
     /** The parcel creator. */
@@ -626,6 +630,7 @@
         StringBuffer sbuffer = new StringBuffer();
         sbuffer.append("paUuid=").append(this.paUuid)
                .append(",name=").append(this.name)
+               .append(",number=").append(this.number)
                .append(",logoUrl=").append(this.logoUrl)
                .append(",recommendLevel=").append(this.recommendLevel)
 //               .append(",sipUri=").append(this.sipUri)
@@ -648,4 +653,12 @@
 
         return sbuffer.toString();
     }
+
+    public String getNumber() {
+        return number;
+    }
+
+    public void setNumber(String number) {
+        this.number = number;
+    }
 }
diff --git a/rcs_service_api/src/com/suntek/mway/rcs/client/api/mcloud/McloudFileApi.java b/rcs_service_api/src/com/suntek/mway/rcs/client/api/mcloud/McloudFileApi.java
index 39038ea..e109c02 100644
--- a/rcs_service_api/src/com/suntek/mway/rcs/client/api/mcloud/McloudFileApi.java
+++ b/rcs_service_api/src/com/suntek/mway/rcs/client/api/mcloud/McloudFileApi.java
@@ -23,6 +23,7 @@
 package com.suntek.mway.rcs.client.api.mcloud;
 
 import com.suntek.mway.rcs.client.aidl.mcloud.IMcloudFileApi;
+import com.suntek.mway.rcs.client.aidl.plugin.callback.IMcloudOperationCtrl;
 import com.suntek.mway.rcs.client.aidl.plugin.entity.mcloudfile.FileNode;
 import com.suntek.mway.rcs.client.aidl.plugin.entity.mcloudfile.TransNode;
 import com.suntek.mway.rcs.client.api.ClientApi;
@@ -73,14 +74,15 @@
         super.initServiceConnect(mConnection);
     }
 
-    public void downloadFileFromUrl(String remoteUrl, String fileName, TransNode.TransOper transOper) throws ServiceDisconnectedException {
+    public IMcloudOperationCtrl downloadFileFromUrl(String remoteUrl, String fileName, TransNode.TransOper transOper) throws ServiceDisconnectedException {
         VerificationUtil.ApiIsNull(myApi);
         LogHelper.i(String.format(Locale.getDefault(),
                 "enter method:downloadFileFromUrl. [remoteUrl,fileName,transOper]=%s,%d", remoteUrl, fileName, transOper.ordinal()));
         try {
-            myApi.downloadFileFromUrl(remoteUrl, fileName, transOper.ordinal());
+            return myApi.downloadFileFromUrl(remoteUrl, fileName, transOper.ordinal());
         } catch (Exception ex) {
             LogHelper.e(ex.getMessage(), ex);
+            return null;
         }
     }
 
@@ -96,16 +98,17 @@
         }
     }
 
-    public void putFile(String localPath, String remotePath, TransNode.TransOper transOper) throws ServiceDisconnectedException, FileSuffixException {
+    public IMcloudOperationCtrl putFile(String localPath, String remotePath, TransNode.TransOper transOper) throws ServiceDisconnectedException, FileSuffixException {
         VerificationUtil.ApiIsNull(myApi);
         LogHelper.i(String.format(Locale.getDefault(),
                 "enter method:putFile. [localPath,remotePath,transOper]=%s,%s,%d",
                 localPath, remotePath, transOper.ordinal()));
         VerificationUtil.isCloudFile(localPath);
         try {
-            myApi.putFile(localPath, remotePath, transOper.ordinal());
+            return myApi.putFile(localPath, remotePath, transOper.ordinal());
         } catch (Exception ex) {
             LogHelper.e(ex.getMessage(), ex);
+            return null;
         }
     }
 
diff --git a/rcs_service_api/src/com/suntek/mway/rcs/client/api/publicaccount/callback/PublicAccountCallback.java b/rcs_service_api/src/com/suntek/mway/rcs/client/api/publicaccount/callback/PublicAccountCallback.java
index ffcfa1f..9239fbc 100644
--- a/rcs_service_api/src/com/suntek/mway/rcs/client/api/publicaccount/callback/PublicAccountCallback.java
+++ b/rcs_service_api/src/com/suntek/mway/rcs/client/api/publicaccount/callback/PublicAccountCallback.java
@@ -22,16 +22,16 @@
  */
 package com.suntek.mway.rcs.client.api.publicaccount.callback;
 
-import java.util.List;
-
-import android.os.RemoteException;
-
 import com.suntek.mway.rcs.client.aidl.plugin.callback.IPublicAccountCallbackAPI;
-import com.suntek.mway.rcs.client.aidl.plugin.entity.pubacct.MenuInfo;
+import com.suntek.mway.rcs.client.aidl.plugin.entity.pubacct.MenuInfoMode;
 import com.suntek.mway.rcs.client.aidl.plugin.entity.pubacct.MsgContent;
 import com.suntek.mway.rcs.client.aidl.plugin.entity.pubacct.PublicAccounts;
 import com.suntek.mway.rcs.client.aidl.plugin.entity.pubacct.PublicAccountsDetail;
 
+import android.os.RemoteException;
+
+import java.util.List;
+
 public abstract class PublicAccountCallback extends IPublicAccountCallbackAPI.Stub{
 
 
@@ -106,7 +106,7 @@
     }
 
     @Override
-    public void respGetPublicMenuInfo(boolean result, List<MenuInfo> menuList)
+    public void respGetPublicMenuInfo(boolean result, MenuInfoMode menuInfoMode)
             throws RemoteException {
         // TODO Auto-generated method stub
 
diff --git a/rcs_service_api/src/com/suntek/mway/rcs/client/api/publicaccount/callback/PublicAccountCallbackImpl.java b/rcs_service_api/src/com/suntek/mway/rcs/client/api/publicaccount/callback/PublicAccountCallbackImpl.java
index f3cad9f..a9d0652 100644
--- a/rcs_service_api/src/com/suntek/mway/rcs/client/api/publicaccount/callback/PublicAccountCallbackImpl.java
+++ b/rcs_service_api/src/com/suntek/mway/rcs/client/api/publicaccount/callback/PublicAccountCallbackImpl.java
@@ -22,15 +22,15 @@
  */
 package com.suntek.mway.rcs.client.api.publicaccount.callback;
 
-import java.util.List;
-
-import android.os.RemoteException;
-
-import com.suntek.mway.rcs.client.aidl.plugin.entity.pubacct.MenuInfo;
+import com.suntek.mway.rcs.client.aidl.plugin.entity.pubacct.MenuInfoMode;
 import com.suntek.mway.rcs.client.aidl.plugin.entity.pubacct.MsgContent;
 import com.suntek.mway.rcs.client.aidl.plugin.entity.pubacct.PublicAccounts;
 import com.suntek.mway.rcs.client.aidl.plugin.entity.pubacct.PublicAccountsDetail;
 
+import android.os.RemoteException;
+
+import java.util.List;
+
 public class PublicAccountCallbackImpl extends PublicAccountCallback {
 
     public PublicAccountCallbackImpl() {
@@ -105,7 +105,7 @@
     }
 
     @Override
-    public void respGetPublicMenuInfo(boolean arg0, List<MenuInfo> arg1)
+    public void respGetPublicMenuInfo(boolean arg0, MenuInfoMode menuInfoMode)
             throws RemoteException {
         // TODO Auto-generated method stub