├── .gitignore
├── AndroidManifest.xml
├── ant.properties
├── build.xml
├── buildtests.xml
├── libs
├── README
├── droid-fu-1.0-SNAPSHOT.jar
└── smack-patched.jar
├── lint.xml
├── local.properties.example
├── proguard-project.txt
├── project.properties
├── res
├── drawable-hdpi
│ ├── buddycloud_2.png
│ ├── ic_menu_allfriends.png
│ ├── ic_menu_friendslist.png
│ └── ic_menu_stop.png
├── drawable
│ ├── .directory
│ ├── add_channel_msg.png
│ ├── badge_gree.9.png
│ ├── channel.png
│ ├── channel_view_add_msg.png
│ ├── channel_view_background.9.png
│ ├── channel_view_msg_background.9.png
│ ├── channel_view_msg_bottom_background.9.png
│ ├── channel_view_msg_top_background.9.png
│ ├── contact.png
│ ├── down_right.png
│ ├── history1.png
│ ├── history2.png
│ ├── ic_input_add.png
│ ├── ic_input_add_24.png
│ ├── ic_input_add_32.png
│ ├── ic_menu_allfriends.png
│ ├── ic_menu_friendslist.png
│ ├── ic_menu_stop.png
│ ├── icon.png
│ ├── icon_statusbar.png
│ ├── lightdialogbg.9.png
│ ├── message_star.png
│ ├── place.png
│ └── up_right.png
├── layout-land
│ ├── login.xml
│ └── main_start.xml
├── layout
│ ├── add_channel_msg.xml
│ ├── channel_layout.xml
│ ├── channel_row.xml
│ ├── follow.xml
│ ├── login.xml
│ ├── main.xml
│ ├── main_start.xml
│ ├── nearby.xml
│ ├── nearby_row.xml
│ ├── personal_post_fragment.xml
│ ├── places.xml
│ ├── places_row.xml
│ ├── post_message.xml
│ ├── roster.xml
│ └── roster_row.xml
├── menu
│ ├── main.xml
│ └── roster_context.xml
├── raw
│ ├── cp.mp3
│ ├── dr.mp3
│ └── pm.mp3
├── values
│ ├── colors.xml
│ ├── strings.xml
│ └── styles.xml
└── xml
│ ├── authenticator.xml
│ ├── authenticator_preferences.xml
│ ├── contacts.xml
│ ├── settings.xml
│ ├── smackproviders.xml
│ └── syncadapter.xml
├── src
├── com
│ ├── buddycloud
│ │ ├── BuddycloudService.java
│ │ ├── IBuddycloudService.aidl
│ │ ├── StateSequenceWorkflow.java
│ │ ├── TaskQueueThread.java
│ │ ├── TimeBroadcastReceiver.java
│ │ ├── android
│ │ │ └── buddydroid
│ │ │ │ ├── AnonymousActivity.java
│ │ │ │ ├── BCConnectionAtomListener.java
│ │ │ │ └── BCNotifications.java
│ │ ├── asmack
│ │ │ ├── BuddycloudChannelMetadataListener.java
│ │ │ ├── BuddycloudLocationChannelListener.java
│ │ │ ├── ChannelSync.java
│ │ │ ├── EventProvider.java
│ │ │ ├── LocationQueryResponseProvider.java
│ │ │ └── PubSubLocationEventProvider.java
│ │ ├── collect
│ │ │ ├── CellListener.java
│ │ │ └── NetworkListener.java
│ │ ├── component
│ │ │ └── ComponentAdd.java
│ │ ├── content
│ │ │ ├── BuddyCloud.java
│ │ │ ├── BuddycloudProvider.java
│ │ │ ├── ChannelDataHelper.java
│ │ │ ├── ChannelSync.java
│ │ │ ├── InboxSync.java
│ │ │ ├── QueuePacketListener.java
│ │ │ ├── RosterHelper.java
│ │ │ └── SyncHelper.java
│ │ ├── jbuddycloud
│ │ │ ├── packet
│ │ │ │ ├── Affiliation.java
│ │ │ │ ├── Affiliations.java
│ │ │ │ ├── BCAtom.java
│ │ │ │ ├── BCSubscription.java
│ │ │ │ ├── BeaconLog.java
│ │ │ │ ├── ChannelFetch.java
│ │ │ │ ├── DiscoItemsPacketExtension.java
│ │ │ │ ├── EventIQ.java
│ │ │ │ ├── GeoLoc.java
│ │ │ │ ├── LocationEvent.java
│ │ │ │ ├── LocationQueryResponse.java
│ │ │ │ ├── MessageArchiveManagement.java
│ │ │ │ ├── MessageForwarded.java
│ │ │ │ ├── PlainPacket.java
│ │ │ │ ├── RSMSet.java
│ │ │ │ └── TextLocation.java
│ │ │ └── provider
│ │ │ │ └── BCSubscriptionProvider.java
│ │ ├── util
│ │ │ └── HumanTime.java
│ │ └── view
│ │ │ ├── BCActivity.java
│ │ │ ├── ChannelMessageActivity.java
│ │ │ ├── FollowActivity.java
│ │ │ ├── NearbyActivity.java
│ │ │ ├── PostActivity.java
│ │ │ └── RosterActivity.java
│ ├── googlecode
│ │ └── asmack
│ │ │ ├── Attribute.java
│ │ │ ├── BootCompletedReceiver.java
│ │ │ ├── Stanza.aidl
│ │ │ ├── Stanza.java
│ │ │ ├── StanzaSink.java
│ │ │ ├── XMLUtils.java
│ │ │ ├── XMPPUtils.java
│ │ │ ├── XmppAccount.java
│ │ │ ├── XmppException.java
│ │ │ ├── XmppIdentity.aidl
│ │ │ ├── XmppIdentity.java
│ │ │ ├── XmppMalformedException.java
│ │ │ ├── XmppSaslException.java
│ │ │ ├── client
│ │ │ ├── AsmackBroadcastReceiver.java
│ │ │ ├── AsmackClient.java
│ │ │ ├── AsmackClientService.java
│ │ │ ├── Callback.java
│ │ │ ├── PacketFilterListener.java
│ │ │ └── TransportServiceBindListener.java
│ │ │ ├── connection
│ │ │ ├── AccountConnection.java
│ │ │ ├── Connection.java
│ │ │ ├── ConnectionFactory.java
│ │ │ ├── ConnectionStateChangeListener.java
│ │ │ ├── ConnectivityReceiver.java
│ │ │ ├── IXmppTransportService.aidl
│ │ │ ├── KeepaliveActionIntentReceiver.java
│ │ │ ├── LoginThread.java
│ │ │ ├── PingRunnable.java
│ │ │ ├── PresenceRunnable.java
│ │ │ ├── SendStanzaReceiver.java
│ │ │ ├── StanzaListener.java
│ │ │ ├── XmppTransportException.java
│ │ │ ├── XmppTransportService.java
│ │ │ └── impl
│ │ │ │ ├── AccountCallbackHander.java
│ │ │ │ ├── ConncetionPullToSinkPushThread.java
│ │ │ │ ├── FeatureNegotiationEngine.java
│ │ │ │ ├── SASLEngine.java
│ │ │ │ ├── Sasl.java
│ │ │ │ ├── TcpConnection.java
│ │ │ │ ├── UnTrustManager.java
│ │ │ │ ├── XmppConnection.java
│ │ │ │ ├── XmppInputStream.java
│ │ │ │ ├── XmppOutputStream.java
│ │ │ │ ├── ZLibInputStream.java
│ │ │ │ └── ZLibOutputStream.java
│ │ │ ├── contacts
│ │ │ ├── ContactDataMapper.java
│ │ │ ├── DeletedMetadata.java
│ │ │ ├── ImMetadata.java
│ │ │ ├── Metadata.java
│ │ │ ├── NicknameMetadata.java
│ │ │ ├── PhotoMetadata.java
│ │ │ ├── PresenceBroadcastReceiver.java
│ │ │ ├── RawContact.java
│ │ │ ├── StatusUpdate.java
│ │ │ └── XmppMetadata.java
│ │ │ ├── disco
│ │ │ ├── Database.java
│ │ │ ├── DatabaseOpenHelper.java
│ │ │ └── DiscoReceiver.java
│ │ │ ├── dns
│ │ │ ├── Client.java
│ │ │ ├── DNSMessage.java
│ │ │ ├── Question.java
│ │ │ ├── Record.java
│ │ │ ├── record
│ │ │ │ ├── A.java
│ │ │ │ ├── AAAA.java
│ │ │ │ ├── CNAME.java
│ │ │ │ ├── Data.java
│ │ │ │ ├── NS.java
│ │ │ │ └── SRV.java
│ │ │ └── util
│ │ │ │ └── NameUtil.java
│ │ │ ├── parser
│ │ │ ├── DummyConnection.java
│ │ │ └── SmackParser.java
│ │ │ ├── sync
│ │ │ ├── Authenticator.java
│ │ │ ├── LoginTestThread.java
│ │ │ ├── RosterResultReceiver.java
│ │ │ ├── SyncAdapter.java
│ │ │ ├── XmppAuthenticatorService.java
│ │ │ └── XmppSyncService.java
│ │ │ ├── util
│ │ │ └── LRUCache.java
│ │ │ └── view
│ │ │ └── AuthenticatorActivity.java
│ └── novell
│ │ └── sasl
│ │ └── client
│ │ ├── DigestChallange.java
│ │ ├── DigestMD5SaslClient.java
│ │ ├── DirectiveList.java
│ │ ├── ParsedDirective.java
│ │ ├── ResponseAuth.java
│ │ └── TokenParser.java
└── org
│ ├── apache
│ ├── harmony
│ │ └── javax
│ │ │ └── security
│ │ │ ├── auth
│ │ │ ├── AuthPermission.java
│ │ │ ├── DestroyFailedException.java
│ │ │ ├── Destroyable.java
│ │ │ ├── PrivateCredentialPermission.java
│ │ │ ├── RefreshFailedException.java
│ │ │ ├── Refreshable.java
│ │ │ ├── Subject.java
│ │ │ ├── SubjectDomainCombiner.java
│ │ │ ├── callback
│ │ │ │ ├── ChoiceCallback.java
│ │ │ │ ├── ConfirmationCallback.java
│ │ │ │ ├── LanguageCallback.java
│ │ │ │ ├── NameCallback.java
│ │ │ │ ├── TextInputCallback.java
│ │ │ │ └── TextOutputCallback.java
│ │ │ ├── login
│ │ │ │ ├── AccountException.java
│ │ │ │ ├── AccountExpiredException.java
│ │ │ │ ├── AccountLockedException.java
│ │ │ │ ├── AccountNotFoundException.java
│ │ │ │ ├── AppConfigurationEntry.java
│ │ │ │ ├── Configuration.java
│ │ │ │ ├── CredentialException.java
│ │ │ │ ├── CredentialExpiredException.java
│ │ │ │ ├── CredentialNotFoundException.java
│ │ │ │ ├── FailedLoginException.java
│ │ │ │ ├── LoginContext.java
│ │ │ │ └── LoginException.java
│ │ │ └── spi
│ │ │ │ └── LoginModule.java
│ │ │ └── sasl
│ │ │ ├── AuthenticationException.java
│ │ │ ├── AuthorizeCallback.java
│ │ │ ├── RealmCallback.java
│ │ │ ├── RealmChoiceCallback.java
│ │ │ ├── Sasl.java
│ │ │ ├── SaslClient.java
│ │ │ ├── SaslClientFactory.java
│ │ │ ├── SaslException.java
│ │ │ ├── SaslServer.java
│ │ │ └── SaslServerFactory.java
│ └── qpid
│ │ └── management
│ │ └── common
│ │ └── sasl
│ │ ├── ClientSaslFactory.java
│ │ ├── Constants.java
│ │ ├── JCAProvider.java
│ │ ├── PlainSaslClient.java
│ │ ├── SaslProvider.java
│ │ ├── UserPasswordCallbackHandler.java
│ │ └── UsernameHashedPasswordCallbackHandler.java
│ ├── jivesoftware
│ └── smack
│ │ └── util
│ │ └── PacketParserUtils.java
│ └── openintents
│ └── intents
│ ├── AboutMiniIntents.java
│ ├── AutomationIntents.java
│ ├── GeneralIntents.java
│ └── ProviderIntents.java
├── test
└── com
│ └── buddycloud
│ └── view
│ └── TestFollowActivity.java
└── testlibs
├── hamcrest-core-1.1.jar
├── hamcrest-library-1.1.jar
├── junit-4.10.0.jar
└── robolectric-0.9.4.jar
/.gitignore:
--------------------------------------------------------------------------------
1 | /bin
2 | /.settings
3 | *.apk
4 | *.ap_
5 | *.dex
6 | *.class
7 | local.proerties
8 | .DS_Store
9 | /gen
10 | /local.properties
11 | # Eclipse files
12 | .classpath
13 | .project
14 | /tests.launch
15 | # junit result folder
16 | /junit
17 |
18 |
--------------------------------------------------------------------------------
/ant.properties:
--------------------------------------------------------------------------------
1 | # This file is used to override default values used by the Ant build system.
2 | #
3 | # This file must be checked into Version Control Systems, as it is
4 | # integral to the build system of your project.
5 |
6 | # This file is only used by the Ant script.
7 |
8 | # You can use this to override default values such as
9 | # 'source.dir' for the location of your java source folder and
10 | # 'out.dir' for the location of your output folder.
11 |
12 | # You can also use it define how the release builds are signed by declaring
13 | # the following properties:
14 | # 'key.store' for the location of your keystore and
15 | # 'key.alias' for the name of the key to use.
16 | # The password will be asked during the build when you use the 'release' target.
17 |
18 | application.package=com.buddycloud.android.buddydroid
19 |
--------------------------------------------------------------------------------
/libs/README:
--------------------------------------------------------------------------------
1 | == smack-patched ==
2 |
3 | Merge smack, smackx, smackx-debug, remove the PacketParserUtils
4 | Version: 3.2.2
5 |
--------------------------------------------------------------------------------
/libs/droid-fu-1.0-SNAPSHOT.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/buddycloud/android-client/1e1abf6d5d40ddda9b5aeba38aa6c913ac240c75/libs/droid-fu-1.0-SNAPSHOT.jar
--------------------------------------------------------------------------------
/libs/smack-patched.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/buddycloud/android-client/1e1abf6d5d40ddda9b5aeba38aa6c913ac240c75/libs/smack-patched.jar
--------------------------------------------------------------------------------
/lint.xml:
--------------------------------------------------------------------------------
1 |
2 |
52 | * Constant Value: "org.openintents.action.SHOW_ABOUT_DIALOG" 53 | *
54 | */ 55 | public static final String ACTION_SHOW_ABOUT_DIALOG = 56 | "org.openintents.action.SHOW_ABOUT_DIALOG"; 57 | 58 | /** 59 | * Optional intent extra: Specify your application package name. 60 | * 61 | * If you start the About dialog through startActivityForResult() 62 | * then the application package is sent automatically and does 63 | * not need to be supplied here. 64 | * 65 | *66 | * Constant Value: "org.openintents.extra.PACKAGE_NAME" 67 | *
68 | */ 69 | public static final String EXTRA_PACKAGE_NAME = 70 | "org.openintents.extra.PACKAGE_NAME"; 71 | 72 | } 73 | -------------------------------------------------------------------------------- /src/org/openintents/intents/AutomationIntents.java: -------------------------------------------------------------------------------- 1 | package org.openintents.intents; 2 | 3 | /** 4 | * Intents for automation. 5 | * 6 | * @author Peli 7 | * @version 1.0.0 8 | */ 9 | public class AutomationIntents { 10 | 11 | /** 12 | * Activity Action: This activity is called to create or edit 13 | * automation settings. 14 | * 15 | * There can be several activities in an apk package that implement this intent. 16 | * 17 | *Constant Value: "org.openintents.action.EDIT_AUTOMATION_SETTINGS"
18 | */ 19 | public static final String ACTION_EDIT_AUTOMATION = "org.openintents.action.EDIT_AUTOMATION"; 20 | 21 | /** 22 | * Broadcast Action: This broadcast is sent to the same package in order to 23 | * activate an automation. 24 | * 25 | * There can only be one broadcast receiver per package that implements this intent. 26 | * Any differentiation should be done through intent extras. 27 | * 28 | *Constant Value: "org.openintents.action.EDIT_AUTOMATION_SETTINGS"
29 | */ 30 | public static final String ACTION_RUN_AUTOMATION = "org.openintents.action.RUN_AUTOMATION"; 31 | 32 | /** 33 | * String extra containing a human readable description of the action to be performed. 34 | * 35 | *Constant Value: "org.openintents.extra.DESCRIPTION"
36 | */ 37 | public static final String EXTRA_DESCRIPTION = "org.openintents.extra.DESCRIPTION"; 38 | 39 | } 40 | -------------------------------------------------------------------------------- /src/org/openintents/intents/GeneralIntents.java: -------------------------------------------------------------------------------- 1 | package org.openintents.intents; 2 | 3 | /** 4 | * 5 | * @author Ben 6 | * @version 1.0.0 7 | */ 8 | public class GeneralIntents { 9 | 10 | /** 11 | * Inserts a items from intent extras into any list. 12 | * 13 | */ 14 | public static final String ACTION_INSERT_FROM_EXTRAS = "org.openintents.action.INSERT_FROM_EXTRAS"; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/org/openintents/intents/ProviderIntents.java: -------------------------------------------------------------------------------- 1 | package org.openintents.intents; 2 | 3 | //Version Nov 21, 2008 4 | 5 | 6 | /** 7 | * Provides OpenIntents actions, extras, and categories used by providers. 8 | *These specifiers extend the standard Android specifiers.
9 | */ 10 | public final class ProviderIntents { 11 | 12 | /** 13 | * Broadcast Action: Sent after a new entry has been inserted. 14 | * 15 | *Constant Value: "org.openintents.action.INSERTED"
16 | */ 17 | public static final String ACTION_INSERTED = "org.openintents.action.INSERTED"; 18 | 19 | /** 20 | * Broadcast Action: Sent after an entry has been modified. 21 | * 22 | *Constant Value: "org.openintents.action.MODIFIED"
23 | */ 24 | public static final String ACTION_MODIFIED = "org.openintents.action.MODIFIED"; 25 | 26 | /** 27 | * Broadcast Action: Sent after an entry has been deleted. 28 | * 29 | *Constant Value: "org.openintents.action.DELETED"
30 | */ 31 | public static final String ACTION_DELETED = "org.openintents.action.DELETED"; 32 | 33 | /** 34 | * Added by the ACTION_DELETED broadcast if it contains a where clause. 35 | * 36 | *The extra contains a long[] which contains the row IDs of all rows 37 | * affected by the where clause. 38 | * It contains NULL if all rows specified by the URI are affected.
39 | * 40 | *Constant Value: "org.openintents.extra.AFFECTED_ROWS"
41 | */ 42 | public static final String EXTRA_AFFECTED_ROWS = "org.openintents.extra.AFFECTED_ROWS"; 43 | } 44 | -------------------------------------------------------------------------------- /test/com/buddycloud/view/TestFollowActivity.java: -------------------------------------------------------------------------------- 1 | package com.buddycloud.view; 2 | 3 | import static org.hamcrest.core.IsEqual.equalTo; 4 | import static org.junit.Assert.assertThat; 5 | 6 | import org.junit.Before; 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import android.content.Intent; 11 | import android.widget.Button; 12 | 13 | import com.buddycloud.R; 14 | import com.xtremelabs.robolectric.RobolectricTestRunner; 15 | 16 | @RunWith(RobolectricTestRunner.class) 17 | public class TestFollowActivity { 18 | private FollowActivity activity; 19 | private Button abortButton; 20 | private Button followActivityButton; 21 | 22 | @Before 23 | public void setUp() throws Exception { 24 | activity = new FollowActivity(); 25 | activity.onCreate(null); 26 | abortButton = (Button) activity.findViewById(R.id.abort); 27 | followActivityButton = (Button) activity.findViewById(R.id.follow); 28 | } 29 | 30 | @Test 31 | public void shouldHaveAButtonThatSaysAbort() throws Exception { 32 | assertThat((String) abortButton.getText(), equalTo("Tests (would) Rock!")); 33 | } 34 | 35 | @Test 36 | public void shouldHaveAButtonThatSaysFollow() throws Exception { 37 | assertThat((String) followActivityButton.getText(), equalTo("Tests (would) Rock!")); 38 | } 39 | 40 | @Test 41 | public void pressingTheAbortButtonShouldAbortThis() throws Exception { 42 | abortButton.performClick(); 43 | // ... 44 | } 45 | 46 | @Test 47 | public void testOnNewIntentIntent() { 48 | Intent intent = emptyIntent(); 49 | new FollowActivity().onNewIntent(intent); 50 | // what to test 51 | } 52 | 53 | /** creates a test data intent */ 54 | private Intent emptyIntent() { 55 | Intent i = new Intent() { 56 | public char[] getCharArrayExtra(String x) { 57 | char[] values = null; 58 | return values; 59 | } 60 | }; 61 | return i; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /testlibs/hamcrest-core-1.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buddycloud/android-client/1e1abf6d5d40ddda9b5aeba38aa6c913ac240c75/testlibs/hamcrest-core-1.1.jar -------------------------------------------------------------------------------- /testlibs/hamcrest-library-1.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buddycloud/android-client/1e1abf6d5d40ddda9b5aeba38aa6c913ac240c75/testlibs/hamcrest-library-1.1.jar -------------------------------------------------------------------------------- /testlibs/junit-4.10.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buddycloud/android-client/1e1abf6d5d40ddda9b5aeba38aa6c913ac240c75/testlibs/junit-4.10.0.jar -------------------------------------------------------------------------------- /testlibs/robolectric-0.9.4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buddycloud/android-client/1e1abf6d5d40ddda9b5aeba38aa6c913ac240c75/testlibs/robolectric-0.9.4.jar --------------------------------------------------------------------------------