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

android开发

开发平台:

C/C++

  1. /*
  2.  * Copyright (C) 2008 Esmertec AG.
  3.  * Copyright (C) 2008 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 com.android.im.plugin.ImPluginConstants;
  19. import java.util.Map;
  20. public class DefaultPresenceMapping implements PresenceMapping {
  21.     public Map<String, Object> getExtra(int status) {
  22.         return null;
  23.     }
  24.     public boolean getOnlineStatus(int status) {
  25.         return status != ImPluginConstants.PRESENCE_OFFLINE;
  26.     }
  27.     public int getPresenceStatus(boolean onlineStatus, String userAvailability,
  28.             Map<String, Object> allValues) {
  29.         if (!onlineStatus) {
  30.             return ImPluginConstants.PRESENCE_OFFLINE;
  31.         }
  32.         if (ImPluginConstants.PA_NOT_AVAILABLE.equals(userAvailability)) {
  33.             return ImPluginConstants.PRESENCE_AWAY;
  34.         } else if (ImPluginConstants.PA_DISCREET.equals(userAvailability)) {
  35.             return ImPluginConstants.PRESENCE_DO_NOT_DISTURB;
  36.         } else {
  37.             return ImPluginConstants.PRESENCE_AVAILABLE;
  38.         }
  39.     }
  40.     public int[] getSupportedPresenceStatus() {
  41.         return new int[] {
  42.                 ImPluginConstants.PRESENCE_AVAILABLE,
  43.                 ImPluginConstants.PRESENCE_DO_NOT_DISTURB,
  44.                 ImPluginConstants.PRESENCE_AWAY
  45.         };
  46.     }
  47.     public String getUserAvaibility(int status) {
  48.         switch (status) {
  49.             case ImPluginConstants.PRESENCE_AVAILABLE:
  50.                 return ImPluginConstants.PA_AVAILABLE;
  51.             case ImPluginConstants.PRESENCE_AWAY:
  52.                 return ImPluginConstants.PA_NOT_AVAILABLE;
  53.             case ImPluginConstants.PRESENCE_DO_NOT_DISTURB:
  54.                 return ImPluginConstants.PA_DISCREET;
  55.             default:
  56.                 return null;
  57.         }
  58.     }
  59.     public boolean requireAllPresenceValues() {
  60.         return false;
  61.     }
  62. }