ImpsGroupAddress.java
上传用户:szyujian
上传日期:2016-09-20
资源大小:320k
文件大小:2k
源码类别:

android开发

开发平台:

C/C++

  1. /*
  2.  * Copyright (C) 2007 Esmertec AG.
  3.  * Copyright (C) 2007 The Android Open Source Project
  4.  *
  5.  * Licensed under the Apache License, Version 2.0 (the "License");
  6.  * you may not use this file except in compliance with the License.
  7.  * You may obtain a copy of the License at
  8.  *
  9.  *      http://www.apache.org/licenses/LICENSE-2.0
  10.  *
  11.  * Unless required by applicable law or agreed to in writing, software
  12.  * distributed under the License is distributed on an "AS IS" BASIS,
  13.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14.  * See the License for the specific language governing permissions and
  15.  * limitations under the License.
  16.  */
  17. package com.android.im.imps;
  18. import android.os.Parcel;
  19. import com.android.im.engine.ChatGroup;
  20. import com.android.im.engine.ImEntity;
  21. public class ImpsGroupAddress extends ImpsAddress{
  22.     private String mScreenName;
  23.     /**
  24.      * Default constructor. Required by AddressParcelHelper.
  25.      */
  26.     public ImpsGroupAddress() {
  27.     }
  28.     public ImpsGroupAddress(String groupId) {
  29.         this(groupId, null);
  30.     }
  31.     public ImpsGroupAddress(ImpsAddress userAddress, String groupName) {
  32.         super(userAddress.getUser(), groupName, userAddress.getDomain());
  33.         if(mResource == null) {
  34.             throw new IllegalArgumentException();
  35.         }
  36.     }
  37.     public ImpsGroupAddress(String groupId, String screenName) {
  38.         super(groupId);
  39.         if(mResource == null) {
  40.             throw new IllegalArgumentException();
  41.         }
  42.         mScreenName = screenName;
  43.     }
  44.     @Override
  45.     public String getScreenName() {
  46.         return mScreenName == null ? getResource() : mScreenName;
  47.     }
  48.     @Override
  49.     public void writeToParcel(Parcel dest) {
  50.         super.writeToParcel(dest);
  51.         dest.writeString(mScreenName);
  52.     }
  53.     @Override
  54.     public void readFromParcel(Parcel source) {
  55.         super.readFromParcel(source);
  56.         mScreenName = source.readString();
  57.     }
  58.     @Override
  59.     public PrimitiveElement toPrimitiveElement() {
  60.         PrimitiveElement group = new PrimitiveElement(ImpsTags.Group);
  61.         group.addChild(ImpsTags.GroupID, getFullName());
  62.         return group;
  63.     }
  64.     @Override
  65.     ImEntity getEntity(ImpsConnection connection) {
  66.         ImpsChatGroupManager manager =
  67.             (ImpsChatGroupManager) connection.getChatGroupManager();
  68.         ChatGroup group = manager.getChatGroup(this);
  69.         if(group == null) {
  70.             group = manager.loadGroupMembersAsync(this);
  71.         }
  72.         return group;
  73.     }
  74. }