Skip to content

Commit

Permalink
代码初上传
Browse files Browse the repository at this point in the history
1.登录
2.点对点即时消息,含图片、表情、带内文件
3.企业通讯录(群聊)
  • Loading branch information
masach committed Jun 7, 2017
1 parent 6dc01c9 commit 6679f02
Show file tree
Hide file tree
Showing 1,250 changed files with 145,979 additions and 0 deletions.
150 changes: 150 additions & 0 deletions FacewhatDroid/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.chat"
android:versionCode="1"
android:versionName="1.0" >

<uses-permission android:name="android.permission.INTERNET" />
<!-- 加入在SDCard中写入数据的权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 加入在SDCard中创建与删除文件的权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="17" />

<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true" />

<!--
largeHeap="true" 内存分配 为true时可能 使用256M(我的设备)可以通过ActivityManager.getMemoryClass()获取,
为false可使用内存为64
-->
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.chat" />

<application
android:name="com.chat.IM"
android:allowBackup="true"
android:icon="@drawable/company"
android:label="@string/app_name"
android:largeHeap="true"
android:theme="@android:style/Theme.NoTitleBar" >

<uses-library android:name="android.test.runner" />

<!--
android:enabled:Android系统是否能够实例化该应用程序的组件,如果为true,
每个组件的enabled属性决定那个组件是 否可以被 enabled。如果为false,
它覆盖组件指定的值;所有组件都是disabled。
android:exported:exported是否其它应用组件能调用这个service或同它交互
-如果能则为true,否则为false。当值为false时 ,只有同一个应用的组件或有相同
用户ID的应用能启动这个服务或绑定它。 -->
<service
android:name="com.chat.IMService"
android:enabled="true"
android:exported="true"
android:process=":push"/>
<!-- -->
<!-- <receiver android:name="com.chat.broadcast.BroadcastReceiverMsg" > -->
<!-- <intent-filter> -->
<!-- <action android:name="com.chat.broadcast.BroadcastReceiverMsg" /> -->
<!-- </intent-filter> -->
<!-- </receiver> -->
<receiver android:name="com.chat.broadcast.BroadcastNet" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>

<provider
android:name="com.chat.db.provider.ContactProvider"
android:authorities="com.chat.db.provider.ContactProvider"
android:exported="true" />
<provider
android:name="com.chat.db.provider.SMSProvider"
android:authorities="com.chat.db.provider.SMSProvider"
android:exported="true" />
<provider
android:name="com.chat.db.provider.PresenceProvider"
android:authorities="com.chat.db.provider.PresenceProvider"
android:exported="true" />
<provider
android:name="com.chat.db.provider.DeptProvider"
android:authorities="com.chat.db.provider.DeptProvider"
android:exported="true" />

<activity
android:name="com.chat.ui.MainActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait" >
</activity>
<!--
screenOrientation="portrait" 切换屏幕屏幕始终与竖形式显示
configChanges="orientation|keyboardHidden"当横竖屏切换时
会直接调用onCreate中的onConfigurationChanged()方法,而不是重新执行onCreate(),
如果没有的话就会重新执行onCreate(); -->
<activity
android:name="com.chat.ui.LoginActivity"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.chat.ui.WelcomeActivity"
android:screenOrientation="portrait" >

<!-- <intent-filter> -->
<!-- <action android:name="android.intent.action.MAIN" /> -->


<!-- <category android:name="android.intent.category.LAUNCHER" /> -->
<!-- </intent-filter> -->
</activity>
<activity
android:name="com.chat.ui.SignActivity"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.chat.ui.UserInfoActivity"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.chat.ui.ChatActivity"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.chat.ui.SearchActivity"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.chat.ui.SettingActivity"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.chat.ui.MySetActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.chat.ui.FileActivity"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.chat.ui.FindActivity"
android:screenOrientation="portrait" >
</activity>
</application>

</manifest>
Expand Down
116 changes: 116 additions & 0 deletions FacewhatDroid/asmack/com/kenai/jbosh/AbstractAttr.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
/*
* Copyright 2009 Mike Cumings
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.kenai.jbosh;

/**
* Abstract base class for creating BOSH attribute classes. Concrete
* implementations of this class will naturally inherit the underlying
* type's behavior for {@code equals()}, {@code hashCode()},
* {@code toString()}, and {@code compareTo()}, allowing for the easy
* creation of objects which extend existing trivial types. This was done
* to comply with the prefactoring rule declaring, "when you are being
* abstract, be abstract all the way".
*
* @param <T> type of the extension object
*/
abstract class AbstractAttr<T extends Comparable>
implements Comparable {

/**
* Captured value.
*/
private final T value;

/**
* Creates a new encapsulated object instance.
*
* @param aValue encapsulated getValue
*/
protected AbstractAttr(final T aValue) {
value = aValue;
}

/**
* Gets the encapsulated data value.
*
* @return data value
*/
public final T getValue() {
return value;
}

///////////////////////////////////////////////////////////////////////////
// Object method overrides:

/**
* {@inheritDoc}
*
* @param otherObj object to compare to
* @return true if the objects are equal, false otherwise
*/
@Override
public boolean equals(final Object otherObj) {
if (otherObj == null) {
return false;
} else if (otherObj instanceof AbstractAttr) {
AbstractAttr other =
(AbstractAttr) otherObj;
return value.equals(other.value);
} else {
return false;
}
}

/**
* {@inheritDoc}
*
* @return hashCode of the encapsulated object
*/
@Override
public int hashCode() {
return value.hashCode();
}

/**
* {@inheritDoc}
*
* @return string representation of the encapsulated object
*/
@Override
public String toString() {
return value.toString();
}

///////////////////////////////////////////////////////////////////////////
// Comparable interface:

/**
* {@inheritDoc}
*
* @param otherObj object to compare to
* @return -1, 0, or 1
*/
@SuppressWarnings("unchecked")
public int compareTo(final Object otherObj) {
if (otherObj == null) {
return 1;
} else {
return value.compareTo(otherObj);
}
}

}
104 changes: 104 additions & 0 deletions FacewhatDroid/asmack/com/kenai/jbosh/AbstractBody.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
/*
* Copyright 2009 Mike Cumings
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.kenai.jbosh;

import java.util.Collections;
import java.util.Map;
import java.util.Set;

/**
* Class representing a single message to or from the BOSH connection
* manager (CM).
* <p/>
* These messages consist of a single {@code body} element
* (qualified within the BOSH namespace:
* {@code http://jabber.org/protocol/httpbind}) and contain zero or more
* child elements (of any namespace). These child elements constitute the
* message payload.
* <p/>
* In addition to the message payload, the attributes of the wrapper
* {@code body} element may also need to be used as part of the communication
* protocol being implemented on top of BOSH, or to define additional
* namespaces used by the child "payload" elements. These attributes are
* exposed via accessors.
*/
public abstract class AbstractBody {

///////////////////////////////////////////////////////////////////////////
// Constructor:

/**
* Restrict subclasses to the local package.
*/
AbstractBody() {
// Empty
}

///////////////////////////////////////////////////////////////////////////
// Public methods:

/**
* Get a set of all defined attribute names.
*
* @return set of qualified attribute names
*/
public final Set<BodyQName> getAttributeNames() {
Map<BodyQName, String> attrs = getAttributes();
return Collections.unmodifiableSet(attrs.keySet());
}

/**
* Get the value of the specified attribute.
*
* @param attr name of the attribute to retriece
* @return attribute value, or {@code null} if not defined
*/
public final String getAttribute(final BodyQName attr) {
Map<BodyQName, String> attrs = getAttributes();
return attrs.get(attr);
}

///////////////////////////////////////////////////////////////////////////
// Abstract methods:

/**
* Get a map of all defined attribute names with their corresponding values.
*
* @return map of qualified attributes
*/
public abstract Map<BodyQName, String> getAttributes();

/**
* Get an XML String representation of this message.
*
* @return XML string representing the body message
*/
public abstract String toXML();

///////////////////////////////////////////////////////////////////////////
// Package-private methods:

/**
* Returns the qualified name of the root/wrapper element.
*
* @return qualified name
*/
static BodyQName getBodyQName() {
return BodyQName.createBOSH("body");
}

}
Loading

0 comments on commit 6679f02

Please sign in to comment.