├── .gitignore ├── .idea ├── .name ├── compiler.xml ├── copyright │ └── profiles_settings.xml ├── encodings.xml ├── gradle.xml ├── misc.xml ├── modules.xml ├── runConfigurations.xml └── vcs.xml ├── README.md ├── app ├── .gitignore ├── build.gradle ├── libs │ ├── httpclient-4.1.3.jar │ ├── httpcore-4.1.4.jar │ └── mpandroidchartlibrary-2-2-4.jar ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── cqupt │ │ └── xmpp │ │ └── ApplicationTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ ├── com │ │ │ ├── cqupt │ │ │ │ └── xmpp │ │ │ │ │ ├── activity │ │ │ │ │ ├── BJActivity.java │ │ │ │ │ ├── ChatActivity.java │ │ │ │ │ ├── ChatWithNodeActivity.java │ │ │ │ │ ├── DMActivity.java │ │ │ │ │ ├── GDActivity.java │ │ │ │ │ ├── KGNodeActivity.java │ │ │ │ │ ├── LEDActivity.java │ │ │ │ │ ├── LoginActivity.java │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ └── SubscribedNodeActivity.java │ │ │ │ │ ├── adapter │ │ │ │ │ ├── ChatWithNodeAdapter.java │ │ │ │ │ ├── MyExpandableListViewAdapter.java │ │ │ │ │ ├── MyFragmentPagerAdapter.java │ │ │ │ │ ├── MySubscribeNodesAdapter.java │ │ │ │ │ └── SessionFragmentAdapter.java │ │ │ │ │ ├── base │ │ │ │ │ ├── BaseActivity.java │ │ │ │ │ └── BaseFragment.java │ │ │ │ │ ├── bean │ │ │ │ │ ├── ChatMessage.java │ │ │ │ │ ├── ChatSession.java │ │ │ │ │ └── NodeSubStatus.java │ │ │ │ │ ├── db │ │ │ │ │ ├── ChatMsgDao.java │ │ │ │ │ ├── ChatSesionDao.java │ │ │ │ │ ├── DBColumns.java │ │ │ │ │ ├── DBHelper.java │ │ │ │ │ └── NodeStatusDao.java │ │ │ │ │ ├── fragment │ │ │ │ │ ├── ContactFragment.java │ │ │ │ │ ├── DiscoverFragment.java │ │ │ │ │ └── MessageFragment.java │ │ │ │ │ ├── listener │ │ │ │ │ ├── AlarmListener.java │ │ │ │ │ ├── CheckConnectionListener.java │ │ │ │ │ ├── MsgListener.java │ │ │ │ │ ├── MyPacketListener.java │ │ │ │ │ └── SessionAlarmListener.java │ │ │ │ │ ├── manager │ │ │ │ │ └── XmppConnectionManager.java │ │ │ │ │ ├── packet │ │ │ │ │ ├── BjMessage.java │ │ │ │ │ ├── DmMessage.java │ │ │ │ │ ├── FanDCMessage.java │ │ │ │ │ ├── GdMessage.java │ │ │ │ │ ├── GetDataResp.java │ │ │ │ │ ├── GetNodeData.java │ │ │ │ │ ├── LedMessage.java │ │ │ │ │ ├── SubscribNode.java │ │ │ │ │ ├── SubscribResp.java │ │ │ │ │ ├── UnsubNode.java │ │ │ │ │ ├── UnsubNodeReq.java │ │ │ │ │ ├── WriteDataToNode.java │ │ │ │ │ └── WriteNodeResp.java │ │ │ │ │ ├── provider │ │ │ │ │ ├── GetDataRespProvider.java │ │ │ │ │ ├── SubscribRespProvider.java │ │ │ │ │ ├── UnsubNodeReqProvider.java │ │ │ │ │ └── WriteNodeRespProvider.java │ │ │ │ │ ├── service │ │ │ │ │ ├── IotXmppService.java │ │ │ │ │ └── PlayAlarmSoundService.java │ │ │ │ │ ├── utils │ │ │ │ │ ├── ActivityUtils.java │ │ │ │ │ ├── ColorUtils.java │ │ │ │ │ ├── ConstUtil.java │ │ │ │ │ ├── DateUtils.java │ │ │ │ │ ├── DensityUtil.java │ │ │ │ │ ├── PreferencesUtils.java │ │ │ │ │ ├── ScreenUtils.java │ │ │ │ │ └── ToastUtils.java │ │ │ │ │ └── widght │ │ │ │ │ ├── CatLoadingView.java │ │ │ │ │ ├── ChoiceListDialog.java │ │ │ │ │ ├── CircleImageView.java │ │ │ │ │ ├── DropdownListView.java │ │ │ │ │ ├── EyelidView.java │ │ │ │ │ ├── GraduallyTextView.java │ │ │ │ │ ├── LoadingProgressDialog.java │ │ │ │ │ ├── MyMarkerView.java │ │ │ │ │ ├── RevealView │ │ │ │ │ ├── BakedBezierInterpolator.java │ │ │ │ │ └── RelativeRevealView.java │ │ │ │ │ ├── SwipeBackActivity.java │ │ │ │ │ ├── SwipeBackActivityBase.java │ │ │ │ │ ├── SwipeBackActivityHelper.java │ │ │ │ │ ├── SwipeBackLayout.java │ │ │ │ │ ├── SwitchButton.java │ │ │ │ │ ├── Utils.java │ │ │ │ │ └── ViewDragHelper.java │ │ │ ├── kenai │ │ │ │ └── jbosh │ │ │ │ │ ├── AbstractAttr.java │ │ │ │ │ ├── AbstractBody.java │ │ │ │ │ ├── AbstractIntegerAttr.java │ │ │ │ │ ├── ApacheHTTPResponse.java │ │ │ │ │ ├── ApacheHTTPSender.java │ │ │ │ │ ├── AttrAccept.java │ │ │ │ │ ├── AttrAck.java │ │ │ │ │ ├── AttrCharsets.java │ │ │ │ │ ├── AttrHold.java │ │ │ │ │ ├── AttrInactivity.java │ │ │ │ │ ├── AttrMaxPause.java │ │ │ │ │ ├── AttrPause.java │ │ │ │ │ ├── AttrPolling.java │ │ │ │ │ ├── AttrRequests.java │ │ │ │ │ ├── AttrSessionID.java │ │ │ │ │ ├── AttrVersion.java │ │ │ │ │ ├── AttrWait.java │ │ │ │ │ ├── Attributes.java │ │ │ │ │ ├── BOSHClient.java │ │ │ │ │ ├── BOSHClientConfig.java │ │ │ │ │ ├── BOSHClientConnEvent.java │ │ │ │ │ ├── BOSHClientConnListener.java │ │ │ │ │ ├── BOSHClientRequestListener.java │ │ │ │ │ ├── BOSHClientResponseListener.java │ │ │ │ │ ├── BOSHException.java │ │ │ │ │ ├── BOSHMessageEvent.java │ │ │ │ │ ├── BodyParser.java │ │ │ │ │ ├── BodyParserResults.java │ │ │ │ │ ├── BodyParserSAX.java │ │ │ │ │ ├── BodyParserXmlPull.java │ │ │ │ │ ├── BodyQName.java │ │ │ │ │ ├── CMSessionParams.java │ │ │ │ │ ├── ComposableBody.java │ │ │ │ │ ├── GZIPCodec.java │ │ │ │ │ ├── HTTPExchange.java │ │ │ │ │ ├── HTTPResponse.java │ │ │ │ │ ├── HTTPSender.java │ │ │ │ │ ├── QName.java │ │ │ │ │ ├── RequestIDSequence.java │ │ │ │ │ ├── ServiceLib.java │ │ │ │ │ ├── StaticBody.java │ │ │ │ │ ├── TerminalBindingCondition.java │ │ │ │ │ ├── ZLIBCodec.java │ │ │ │ │ └── package.html │ │ │ └── novell │ │ │ │ └── sasl │ │ │ │ └── client │ │ │ │ ├── DigestChallenge.java │ │ │ │ ├── DigestMD5SaslClient.java │ │ │ │ ├── DirectiveList.java │ │ │ │ ├── ParsedDirective.java │ │ │ │ ├── ResponseAuth.java │ │ │ │ └── TokenParser.java │ │ ├── de │ │ │ └── measite │ │ │ │ └── smack │ │ │ │ ├── AndroidDebugger.java │ │ │ │ ├── Sasl.java │ │ │ │ └── SaslClientFactory.java │ │ └── org │ │ │ ├── apache │ │ │ ├── harmony │ │ │ │ └── javax │ │ │ │ │ └── security │ │ │ │ │ ├── auth │ │ │ │ │ ├── AuthPermission.java │ │ │ │ │ ├── DestroyFailedException.java │ │ │ │ │ ├── Destroyable.java │ │ │ │ │ ├── PrivateCredentialPermission.java │ │ │ │ │ ├── RefreshFailedException.java │ │ │ │ │ ├── Refreshable.java │ │ │ │ │ ├── Subject.java │ │ │ │ │ ├── SubjectDomainCombiner.java │ │ │ │ │ ├── callback │ │ │ │ │ │ ├── Callback.java │ │ │ │ │ │ ├── CallbackHandler.java │ │ │ │ │ │ ├── ChoiceCallback.java │ │ │ │ │ │ ├── ConfirmationCallback.java │ │ │ │ │ │ ├── LanguageCallback.java │ │ │ │ │ │ ├── NameCallback.java │ │ │ │ │ │ ├── PasswordCallback.java │ │ │ │ │ │ ├── TextInputCallback.java │ │ │ │ │ │ ├── TextOutputCallback.java │ │ │ │ │ │ └── UnsupportedCallbackException.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 │ │ │ │ ├── CRAMMD5HashedSaslClientFactory.java │ │ │ │ ├── ClientSaslFactory.java │ │ │ │ ├── Constants.java │ │ │ │ ├── JCAProvider.java │ │ │ │ ├── PlainSaslClient.java │ │ │ │ ├── SaslProvider.java │ │ │ │ ├── UserPasswordCallbackHandler.java │ │ │ │ └── UsernameHashedPasswordCallbackHandler.java │ │ │ ├── jivesoftware │ │ │ ├── smack │ │ │ │ ├── AbstractConnectionListener.java │ │ │ │ ├── AccountManager.java │ │ │ │ ├── AndroidConnectionConfiguration.java │ │ │ │ ├── BOSHConfiguration.java │ │ │ │ ├── BOSHConnection.java │ │ │ │ ├── BOSHPacketReader.java │ │ │ │ ├── Chat.java │ │ │ │ ├── ChatManager.java │ │ │ │ ├── ChatManagerListener.java │ │ │ │ ├── Connection.java │ │ │ │ ├── Connection.java.orig │ │ │ │ ├── ConnectionConfiguration.java │ │ │ │ ├── ConnectionCreationListener.java │ │ │ │ ├── ConnectionListener.java │ │ │ │ ├── MessageListener.java │ │ │ │ ├── NonSASLAuthentication.java │ │ │ │ ├── OpenTrustManager.java │ │ │ │ ├── PacketCollector.java │ │ │ │ ├── PacketInterceptor.java │ │ │ │ ├── PacketListener.java │ │ │ │ ├── PacketReader.java │ │ │ │ ├── PacketWriter.java │ │ │ │ ├── PrivacyList.java │ │ │ │ ├── PrivacyListListener.java │ │ │ │ ├── PrivacyListManager.java │ │ │ │ ├── ReconnectionManager.java │ │ │ │ ├── Roster.java │ │ │ │ ├── RosterEntry.java │ │ │ │ ├── RosterGroup.java │ │ │ │ ├── RosterListener.java │ │ │ │ ├── RosterStorage.java │ │ │ │ ├── SASLAuthentication.java │ │ │ │ ├── SASLAuthentication.java.orig │ │ │ │ ├── ServerTrustManager.java │ │ │ │ ├── SmackAndroid.java │ │ │ │ ├── SmackConfiguration.java │ │ │ │ ├── UserAuthentication.java │ │ │ │ ├── XMPPConnection.java │ │ │ │ ├── XMPPException.java │ │ │ │ ├── compression │ │ │ │ │ ├── Java7ZlibInputOutputStream.java │ │ │ │ │ ├── JzlibInputOutputStream.java │ │ │ │ │ └── XMPPInputOutputStream.java │ │ │ │ ├── debugger │ │ │ │ │ ├── ConsoleDebugger.java │ │ │ │ │ ├── SmackDebugger.java │ │ │ │ │ └── package.html │ │ │ │ ├── filter │ │ │ │ │ ├── AndFilter.java │ │ │ │ │ ├── FromContainsFilter.java │ │ │ │ │ ├── FromMatchesFilter.java │ │ │ │ │ ├── IQTypeFilter.java │ │ │ │ │ ├── MessageTypeFilter.java │ │ │ │ │ ├── NotFilter.java │ │ │ │ │ ├── OrFilter.java │ │ │ │ │ ├── PacketExtensionFilter.java │ │ │ │ │ ├── PacketFilter.java │ │ │ │ │ ├── PacketIDFilter.java │ │ │ │ │ ├── PacketTypeFilter.java │ │ │ │ │ ├── ThreadFilter.java │ │ │ │ │ ├── ToContainsFilter.java │ │ │ │ │ └── package.html │ │ │ │ ├── package.html │ │ │ │ ├── packet │ │ │ │ │ ├── Authentication.java │ │ │ │ │ ├── Bind.java │ │ │ │ │ ├── DefaultPacketExtension.java │ │ │ │ │ ├── IQ.java │ │ │ │ │ ├── Message.java │ │ │ │ │ ├── Packet.java │ │ │ │ │ ├── PacketExtension.java │ │ │ │ │ ├── Presence.java │ │ │ │ │ ├── Privacy.java │ │ │ │ │ ├── PrivacyItem.java │ │ │ │ │ ├── Registration.java │ │ │ │ │ ├── RosterPacket.java │ │ │ │ │ ├── Session.java │ │ │ │ │ ├── StreamError.java │ │ │ │ │ ├── XMPPError.java │ │ │ │ │ └── package.html │ │ │ │ ├── provider │ │ │ │ │ ├── EmbeddedExtensionProvider.java │ │ │ │ │ ├── IQProvider.java │ │ │ │ │ ├── PacketExtensionProvider.java │ │ │ │ │ ├── PrivacyProvider.java │ │ │ │ │ ├── ProviderManager.java │ │ │ │ │ └── package.html │ │ │ │ ├── proxy │ │ │ │ │ ├── DirectSocketFactory.java │ │ │ │ │ ├── HTTPProxySocketFactory.java │ │ │ │ │ ├── ProxyException.java │ │ │ │ │ ├── ProxyInfo.java │ │ │ │ │ ├── Socks4ProxySocketFactory.java │ │ │ │ │ └── Socks5ProxySocketFactory.java │ │ │ │ ├── sasl │ │ │ │ │ ├── SASLAnonymous.java │ │ │ │ │ ├── SASLCramMD5Mechanism.java │ │ │ │ │ ├── SASLDigestMD5Mechanism.java │ │ │ │ │ ├── SASLExternalMechanism.java │ │ │ │ │ ├── SASLFacebookConnect.java │ │ │ │ │ ├── SASLGSSAPIMechanism.java │ │ │ │ │ ├── SASLMechanism.java │ │ │ │ │ ├── SASLPlainMechanism.java │ │ │ │ │ └── package.html │ │ │ │ └── util │ │ │ │ │ ├── Base32Encoder.java │ │ │ │ │ ├── Base64.java │ │ │ │ │ ├── Base64Encoder.java │ │ │ │ │ ├── Cache.java │ │ │ │ │ ├── DNSUtil.java │ │ │ │ │ ├── DateFormatType.java │ │ │ │ │ ├── ObservableReader.java │ │ │ │ │ ├── ObservableWriter.java │ │ │ │ │ ├── PacketParserUtils.java │ │ │ │ │ ├── PacketParserUtils.java.orig │ │ │ │ │ ├── ReaderListener.java │ │ │ │ │ ├── StringEncoder.java │ │ │ │ │ ├── StringUtils.java │ │ │ │ │ ├── SyncPacketSend.java │ │ │ │ │ ├── WriterListener.java │ │ │ │ │ ├── collections │ │ │ │ │ ├── AbstractEmptyIterator.java │ │ │ │ │ ├── AbstractHashedMap.java │ │ │ │ │ ├── AbstractKeyValue.java │ │ │ │ │ ├── AbstractMapEntry.java │ │ │ │ │ ├── AbstractReferenceMap.java │ │ │ │ │ ├── DefaultMapEntry.java │ │ │ │ │ ├── EmptyIterator.java │ │ │ │ │ ├── EmptyMapIterator.java │ │ │ │ │ ├── IterableMap.java │ │ │ │ │ ├── KeyValue.java │ │ │ │ │ ├── MapIterator.java │ │ │ │ │ ├── ReferenceMap.java │ │ │ │ │ └── ResettableIterator.java │ │ │ │ │ ├── dns │ │ │ │ │ ├── DNSJavaResolver.java │ │ │ │ │ ├── DNSResolver.java │ │ │ │ │ ├── HostAddress.java │ │ │ │ │ └── SRVRecord.java │ │ │ │ │ └── package.html │ │ │ └── smackx │ │ │ │ ├── ChatState.java │ │ │ │ ├── ChatStateListener.java │ │ │ │ ├── ChatStateManager.java │ │ │ │ ├── ConfigureProviderManager.java │ │ │ │ ├── DefaultMessageEventRequestListener.java │ │ │ │ ├── Form.java │ │ │ │ ├── FormField.java │ │ │ │ ├── Gateway.java │ │ │ │ ├── GatewayManager.java │ │ │ │ ├── GroupChatInvitation.java │ │ │ │ ├── InitStaticCode.java │ │ │ │ ├── LastActivityManager.java │ │ │ │ ├── MessageEventManager.java │ │ │ │ ├── MessageEventNotificationListener.java │ │ │ │ ├── MessageEventRequestListener.java │ │ │ │ ├── MultipleRecipientInfo.java │ │ │ │ ├── MultipleRecipientManager.java │ │ │ │ ├── NodeInformationProvider.java │ │ │ │ ├── OfflineMessageHeader.java │ │ │ │ ├── OfflineMessageManager.java │ │ │ │ ├── PEPListener.java │ │ │ │ ├── PEPManager.java │ │ │ │ ├── PrivateDataManager.java │ │ │ │ ├── RemoteRosterEntry.java │ │ │ │ ├── ReportedData.java │ │ │ │ ├── RosterExchangeListener.java │ │ │ │ ├── RosterExchangeManager.java │ │ │ │ ├── ServiceDiscoveryManager.java │ │ │ │ ├── SharedGroupManager.java │ │ │ │ ├── XHTMLManager.java │ │ │ │ ├── XHTMLText.java │ │ │ │ ├── bookmark │ │ │ │ ├── BookmarkManager.java │ │ │ │ ├── BookmarkedConference.java │ │ │ │ ├── BookmarkedURL.java │ │ │ │ ├── Bookmarks.java │ │ │ │ └── SharedBookmark.java │ │ │ │ ├── bytestreams │ │ │ │ ├── BytestreamListener.java │ │ │ │ ├── BytestreamManager.java │ │ │ │ ├── BytestreamRequest.java │ │ │ │ ├── BytestreamSession.java │ │ │ │ ├── ibb │ │ │ │ │ ├── CloseListener.java │ │ │ │ │ ├── DataListener.java │ │ │ │ │ ├── InBandBytestreamListener.java │ │ │ │ │ ├── InBandBytestreamManager.java │ │ │ │ │ ├── InBandBytestreamRequest.java │ │ │ │ │ ├── InBandBytestreamSession.java │ │ │ │ │ ├── InitiationListener.java │ │ │ │ │ ├── packet │ │ │ │ │ │ ├── Close.java │ │ │ │ │ │ ├── Data.java │ │ │ │ │ │ ├── DataPacketExtension.java │ │ │ │ │ │ └── Open.java │ │ │ │ │ └── provider │ │ │ │ │ │ ├── CloseIQProvider.java │ │ │ │ │ │ ├── DataPacketProvider.java │ │ │ │ │ │ └── OpenIQProvider.java │ │ │ │ └── socks5 │ │ │ │ │ ├── InitiationListener.java │ │ │ │ │ ├── Socks5BytestreamListener.java │ │ │ │ │ ├── Socks5BytestreamManager.java │ │ │ │ │ ├── Socks5BytestreamRequest.java │ │ │ │ │ ├── Socks5BytestreamSession.java │ │ │ │ │ ├── Socks5Client.java │ │ │ │ │ ├── Socks5ClientForInitiator.java │ │ │ │ │ ├── Socks5Proxy.java │ │ │ │ │ ├── Socks5Utils.java │ │ │ │ │ ├── packet │ │ │ │ │ └── Bytestream.java │ │ │ │ │ └── provider │ │ │ │ │ └── BytestreamsProvider.java │ │ │ │ ├── carbons │ │ │ │ ├── Carbon.java │ │ │ │ └── CarbonManager.java │ │ │ │ ├── commands │ │ │ │ ├── AdHocCommand.java │ │ │ │ ├── AdHocCommandManager.java │ │ │ │ ├── AdHocCommandNote.java │ │ │ │ ├── LocalCommand.java │ │ │ │ ├── LocalCommandFactory.java │ │ │ │ └── RemoteCommand.java │ │ │ │ ├── debugger │ │ │ │ └── package.html │ │ │ │ ├── entitycaps │ │ │ │ ├── EntityCapsManager.java │ │ │ │ ├── cache │ │ │ │ │ ├── EntityCapsPersistentCache.java │ │ │ │ │ └── SimpleDirectoryPersistentCache.java │ │ │ │ ├── packet │ │ │ │ │ └── CapsExtension.java │ │ │ │ └── provider │ │ │ │ │ └── CapsExtensionProvider.java │ │ │ │ ├── filetransfer │ │ │ │ ├── FaultTolerantNegotiator.java │ │ │ │ ├── FileTransfer.java │ │ │ │ ├── FileTransferListener.java │ │ │ │ ├── FileTransferManager.java │ │ │ │ ├── FileTransferNegotiator.java │ │ │ │ ├── FileTransferRequest.java │ │ │ │ ├── IBBTransferNegotiator.java │ │ │ │ ├── IncomingFileTransfer.java │ │ │ │ ├── OutgoingFileTransfer.java │ │ │ │ ├── Socks5TransferNegotiator.java │ │ │ │ └── StreamNegotiator.java │ │ │ │ ├── forward │ │ │ │ └── Forwarded.java │ │ │ │ ├── muc │ │ │ │ ├── Affiliate.java │ │ │ │ ├── ConnectionDetachedPacketCollector.java │ │ │ │ ├── DeafOccupantInterceptor.java │ │ │ │ ├── DefaultParticipantStatusListener.java │ │ │ │ ├── DefaultUserStatusListener.java │ │ │ │ ├── DiscussionHistory.java │ │ │ │ ├── HostedRoom.java │ │ │ │ ├── InvitationListener.java │ │ │ │ ├── InvitationRejectionListener.java │ │ │ │ ├── MultiUserChat.java │ │ │ │ ├── Occupant.java │ │ │ │ ├── PacketMultiplexListener.java │ │ │ │ ├── ParticipantStatusListener.java │ │ │ │ ├── RoomInfo.java │ │ │ │ ├── RoomListenerMultiplexor.java │ │ │ │ ├── SubjectUpdatedListener.java │ │ │ │ ├── UserStatusListener.java │ │ │ │ └── package.html │ │ │ │ ├── package.html │ │ │ │ ├── packet │ │ │ │ ├── AdHocCommandData.java │ │ │ │ ├── AttentionExtension.java │ │ │ │ ├── ChatStateExtension.java │ │ │ │ ├── DataForm.java │ │ │ │ ├── DefaultPrivateData.java │ │ │ │ ├── DelayInfo.java │ │ │ │ ├── DelayInformation.java │ │ │ │ ├── DiscoverInfo.java │ │ │ │ ├── DiscoverItems.java │ │ │ │ ├── Header.java │ │ │ │ ├── HeadersExtension.java │ │ │ │ ├── LastActivity.java │ │ │ │ ├── MUCAdmin.java │ │ │ │ ├── MUCInitialPresence.java │ │ │ │ ├── MUCOwner.java │ │ │ │ ├── MUCUser.java │ │ │ │ ├── MessageEvent.java │ │ │ │ ├── MultipleAddresses.java │ │ │ │ ├── Nick.java │ │ │ │ ├── OfflineMessageInfo.java │ │ │ │ ├── OfflineMessageRequest.java │ │ │ │ ├── PEPEvent.java │ │ │ │ ├── PEPItem.java │ │ │ │ ├── PEPPubSub.java │ │ │ │ ├── PrivateData.java │ │ │ │ ├── RosterExchange.java │ │ │ │ ├── SharedGroupsInfo.java │ │ │ │ ├── StreamInitiation.java │ │ │ │ ├── Time.java │ │ │ │ ├── VCard.java │ │ │ │ ├── Version.java │ │ │ │ ├── XHTMLExtension.java │ │ │ │ └── package.html │ │ │ │ ├── ping │ │ │ │ ├── PingFailedListener.java │ │ │ │ ├── PingManager.java │ │ │ │ ├── ServerPingTask.java │ │ │ │ ├── packet │ │ │ │ │ ├── Ping.java │ │ │ │ │ └── Pong.java │ │ │ │ └── provider │ │ │ │ │ └── PingProvider.java │ │ │ │ ├── provider │ │ │ │ ├── AdHocCommandDataProvider.java │ │ │ │ ├── CapsExtensionProvider.java │ │ │ │ ├── DataFormProvider.java │ │ │ │ ├── DelayInfoProvider.java │ │ │ │ ├── DelayInformationProvider.java │ │ │ │ ├── DiscoverInfoProvider.java │ │ │ │ ├── DiscoverItemsProvider.java │ │ │ │ ├── EmbeddedExtensionProvider.java │ │ │ │ ├── HeaderProvider.java │ │ │ │ ├── HeadersProvider.java │ │ │ │ ├── MUCAdminProvider.java │ │ │ │ ├── MUCOwnerProvider.java │ │ │ │ ├── MUCUserProvider.java │ │ │ │ ├── MessageEventProvider.java │ │ │ │ ├── MultipleAddressesProvider.java │ │ │ │ ├── PEPProvider.java │ │ │ │ ├── PrivateDataProvider.java │ │ │ │ ├── RosterExchangeProvider.java │ │ │ │ ├── StreamInitiationProvider.java │ │ │ │ ├── VCardProvider.java │ │ │ │ ├── XHTMLExtensionProvider.java │ │ │ │ └── package.html │ │ │ │ ├── pubsub │ │ │ │ ├── AccessModel.java │ │ │ │ ├── Affiliation.java │ │ │ │ ├── AffiliationsExtension.java │ │ │ │ ├── ChildrenAssociationPolicy.java │ │ │ │ ├── CollectionNode.java │ │ │ │ ├── ConfigurationEvent.java │ │ │ │ ├── ConfigureForm.java │ │ │ │ ├── ConfigureNodeFields.java │ │ │ │ ├── EmbeddedPacketExtension.java │ │ │ │ ├── EventElement.java │ │ │ │ ├── EventElementType.java │ │ │ │ ├── FormNode.java │ │ │ │ ├── FormNodeType.java │ │ │ │ ├── FormType.java │ │ │ │ ├── GetItemsRequest.java │ │ │ │ ├── Item.java │ │ │ │ ├── ItemDeleteEvent.java │ │ │ │ ├── ItemPublishEvent.java │ │ │ │ ├── ItemReply.java │ │ │ │ ├── ItemsExtension.java │ │ │ │ ├── LeafNode.java │ │ │ │ ├── Node.java │ │ │ │ ├── NodeEvent.java │ │ │ │ ├── NodeExtension.java │ │ │ │ ├── NodeType.java │ │ │ │ ├── OptionsExtension.java │ │ │ │ ├── PayloadItem.java │ │ │ │ ├── PresenceState.java │ │ │ │ ├── PubSubElementType.java │ │ │ │ ├── PubSubManager.java │ │ │ │ ├── PublishItem.java │ │ │ │ ├── PublishModel.java │ │ │ │ ├── RetractItem.java │ │ │ │ ├── SimplePayload.java │ │ │ │ ├── SubscribeExtension.java │ │ │ │ ├── SubscribeForm.java │ │ │ │ ├── SubscribeOptionFields.java │ │ │ │ ├── Subscription.java │ │ │ │ ├── SubscriptionEvent.java │ │ │ │ ├── SubscriptionsExtension.java │ │ │ │ ├── UnsubscribeExtension.java │ │ │ │ ├── listener │ │ │ │ │ ├── ItemDeleteListener.java │ │ │ │ │ ├── ItemEventListener.java │ │ │ │ │ └── NodeConfigListener.java │ │ │ │ ├── packet │ │ │ │ │ ├── PubSub.java │ │ │ │ │ ├── PubSubNamespace.java │ │ │ │ │ └── SyncPacketSend.java │ │ │ │ ├── provider │ │ │ │ │ ├── AffiliationProvider.java │ │ │ │ │ ├── AffiliationsProvider.java │ │ │ │ │ ├── ConfigEventProvider.java │ │ │ │ │ ├── EventProvider.java │ │ │ │ │ ├── FormNodeProvider.java │ │ │ │ │ ├── ItemProvider.java │ │ │ │ │ ├── ItemsProvider.java │ │ │ │ │ ├── PubSubProvider.java │ │ │ │ │ ├── RetractEventProvider.java │ │ │ │ │ ├── SimpleNodeProvider.java │ │ │ │ │ ├── SubscriptionProvider.java │ │ │ │ │ └── SubscriptionsProvider.java │ │ │ │ └── util │ │ │ │ │ ├── NodeUtils.java │ │ │ │ │ └── XmlUtils.java │ │ │ │ ├── receipts │ │ │ │ ├── DeliveryReceipt.java │ │ │ │ ├── DeliveryReceiptManager.java │ │ │ │ └── DeliveryReceiptRequest.java │ │ │ │ ├── search │ │ │ │ ├── SimpleUserSearch.java │ │ │ │ ├── UserSearch.java │ │ │ │ └── UserSearchManager.java │ │ │ │ └── workgroup │ │ │ │ ├── MetaData.java │ │ │ │ ├── QueueUser.java │ │ │ │ ├── WorkgroupInvitation.java │ │ │ │ ├── WorkgroupInvitationListener.java │ │ │ │ ├── agent │ │ │ │ ├── Agent.java │ │ │ │ ├── AgentRoster.java │ │ │ │ ├── AgentRosterListener.java │ │ │ │ ├── AgentSession.java │ │ │ │ ├── InvitationRequest.java │ │ │ │ ├── Offer.java │ │ │ │ ├── OfferConfirmation.java │ │ │ │ ├── OfferConfirmationListener.java │ │ │ │ ├── OfferContent.java │ │ │ │ ├── OfferListener.java │ │ │ │ ├── QueueUsersListener.java │ │ │ │ ├── RevokedOffer.java │ │ │ │ ├── TranscriptManager.java │ │ │ │ ├── TranscriptSearchManager.java │ │ │ │ ├── TransferRequest.java │ │ │ │ ├── UserRequest.java │ │ │ │ └── WorkgroupQueue.java │ │ │ │ ├── ext │ │ │ │ ├── forms │ │ │ │ │ └── WorkgroupForm.java │ │ │ │ ├── history │ │ │ │ │ ├── AgentChatHistory.java │ │ │ │ │ ├── AgentChatSession.java │ │ │ │ │ └── ChatMetadata.java │ │ │ │ ├── macros │ │ │ │ │ ├── Macro.java │ │ │ │ │ ├── MacroGroup.java │ │ │ │ │ └── Macros.java │ │ │ │ └── notes │ │ │ │ │ └── ChatNotes.java │ │ │ │ ├── packet │ │ │ │ ├── AgentInfo.java │ │ │ │ ├── AgentStatus.java │ │ │ │ ├── AgentStatusRequest.java │ │ │ │ ├── AgentWorkgroups.java │ │ │ │ ├── DepartQueuePacket.java │ │ │ │ ├── MetaDataProvider.java │ │ │ │ ├── MonitorPacket.java │ │ │ │ ├── OccupantsInfo.java │ │ │ │ ├── OfferRequestProvider.java │ │ │ │ ├── OfferRevokeProvider.java │ │ │ │ ├── QueueDetails.java │ │ │ │ ├── QueueOverview.java │ │ │ │ ├── QueueUpdate.java │ │ │ │ ├── RoomInvitation.java │ │ │ │ ├── RoomTransfer.java │ │ │ │ ├── SessionID.java │ │ │ │ ├── Transcript.java │ │ │ │ ├── TranscriptProvider.java │ │ │ │ ├── TranscriptSearch.java │ │ │ │ ├── Transcripts.java │ │ │ │ ├── TranscriptsProvider.java │ │ │ │ ├── UserID.java │ │ │ │ └── WorkgroupInformation.java │ │ │ │ ├── settings │ │ │ │ ├── ChatSetting.java │ │ │ │ ├── ChatSettings.java │ │ │ │ ├── GenericSettings.java │ │ │ │ ├── OfflineSettings.java │ │ │ │ ├── SearchSettings.java │ │ │ │ ├── SoundSettings.java │ │ │ │ └── WorkgroupProperties.java │ │ │ │ ├── user │ │ │ │ ├── QueueListener.java │ │ │ │ └── Workgroup.java │ │ │ │ └── util │ │ │ │ ├── ListenerEventDispatcher.java │ │ │ │ ├── MetaDataUtils.java │ │ │ │ └── ModelUtil.java │ │ │ └── xbill │ │ │ └── DNS │ │ │ ├── A6Record.java │ │ │ ├── AAAARecord.java │ │ │ ├── AFSDBRecord.java │ │ │ ├── APLRecord.java │ │ │ ├── ARecord.java │ │ │ ├── Address.java │ │ │ ├── CERTRecord.java │ │ │ ├── CNAMERecord.java │ │ │ ├── Cache.java │ │ │ ├── Client.java │ │ │ ├── ClientSubnetOption.java │ │ │ ├── Compression.java │ │ │ ├── Credibility.java │ │ │ ├── DClass.java │ │ │ ├── DHCIDRecord.java │ │ │ ├── DLVRecord.java │ │ │ ├── DNAMERecord.java │ │ │ ├── DNSInput.java │ │ │ ├── DNSKEYRecord.java │ │ │ ├── DNSOutput.java │ │ │ ├── DNSSEC.java │ │ │ ├── DSRecord.java │ │ │ ├── EDNSOption.java │ │ │ ├── EmptyRecord.java │ │ │ ├── ExtendedFlags.java │ │ │ ├── ExtendedResolver.java │ │ │ ├── Flags.java │ │ │ ├── FormattedTime.java │ │ │ ├── GPOSRecord.java │ │ │ ├── Generator.java │ │ │ ├── GenericEDNSOption.java │ │ │ ├── HINFORecord.java │ │ │ ├── Header.java │ │ │ ├── IPSECKEYRecord.java │ │ │ ├── ISDNRecord.java │ │ │ ├── InvalidDClassException.java │ │ │ ├── InvalidTTLException.java │ │ │ ├── InvalidTypeException.java │ │ │ ├── KEYBase.java │ │ │ ├── KEYRecord.java │ │ │ ├── KXRecord.java │ │ │ ├── LOCRecord.java │ │ │ ├── Lookup.java │ │ │ ├── MBRecord.java │ │ │ ├── MDRecord.java │ │ │ ├── MFRecord.java │ │ │ ├── MGRecord.java │ │ │ ├── MINFORecord.java │ │ │ ├── MRRecord.java │ │ │ ├── MXRecord.java │ │ │ ├── Master.java │ │ │ ├── Message.java │ │ │ ├── Mnemonic.java │ │ │ ├── NAPTRRecord.java │ │ │ ├── NSAPRecord.java │ │ │ ├── NSAP_PTRRecord.java │ │ │ ├── NSEC3PARAMRecord.java │ │ │ ├── NSEC3Record.java │ │ │ ├── NSECRecord.java │ │ │ ├── NSIDOption.java │ │ │ ├── NSRecord.java │ │ │ ├── NULLRecord.java │ │ │ ├── NXTRecord.java │ │ │ ├── Name.java │ │ │ ├── NameTooLongException.java │ │ │ ├── OPTRecord.java │ │ │ ├── Opcode.java │ │ │ ├── Options.java │ │ │ ├── PTRRecord.java │ │ │ ├── PXRecord.java │ │ │ ├── RPRecord.java │ │ │ ├── RRSIGRecord.java │ │ │ ├── RRset.java │ │ │ ├── RTRecord.java │ │ │ ├── Rcode.java │ │ │ ├── Record.java │ │ │ ├── RelativeNameException.java │ │ │ ├── ResolveThread.java │ │ │ ├── Resolver.java │ │ │ ├── ResolverConfig.java │ │ │ ├── ResolverListener.java │ │ │ ├── ReverseMap.java │ │ │ ├── SIG0.java │ │ │ ├── SIGBase.java │ │ │ ├── SIGRecord.java │ │ │ ├── SOARecord.java │ │ │ ├── SPFRecord.java │ │ │ ├── SRVRecord.java │ │ │ ├── SSHFPRecord.java │ │ │ ├── Section.java │ │ │ ├── Serial.java │ │ │ ├── SetResponse.java │ │ │ ├── SimpleResolver.java │ │ │ ├── SingleCompressedNameBase.java │ │ │ ├── SingleNameBase.java │ │ │ ├── TCPClient.java │ │ │ ├── TKEYRecord.java │ │ │ ├── TLSARecord.java │ │ │ ├── TSIG.java │ │ │ ├── TSIGRecord.java │ │ │ ├── TTL.java │ │ │ ├── TXTBase.java │ │ │ ├── TXTRecord.java │ │ │ ├── TextParseException.java │ │ │ ├── Tokenizer.java │ │ │ ├── Type.java │ │ │ ├── TypeBitmap.java │ │ │ ├── U16NameBase.java │ │ │ ├── UDPClient.java │ │ │ ├── UNKRecord.java │ │ │ ├── Update.java │ │ │ ├── WKSRecord.java │ │ │ ├── WireParseException.java │ │ │ ├── X25Record.java │ │ │ ├── Zone.java │ │ │ ├── ZoneTransferException.java │ │ │ ├── ZoneTransferIn.java │ │ │ ├── spi │ │ │ ├── DNSJavaNameService.java │ │ │ └── services │ │ │ │ └── sun.net.spi.nameservice.NameServiceDescriptor │ │ │ ├── tests │ │ │ ├── primary.java │ │ │ └── xfrin.java │ │ │ ├── utils │ │ │ ├── HMAC.java │ │ │ ├── base16.java │ │ │ ├── base32.java │ │ │ ├── base64.java │ │ │ └── hexdump.java │ │ │ └── windows │ │ │ ├── DNSServer.properties │ │ │ ├── DNSServer_de.properties │ │ │ ├── DNSServer_fr.properties │ │ │ ├── DNSServer_ja.properties │ │ │ └── DNSServer_pl.properties │ └── res │ │ ├── anim │ │ └── cat_loading_dialog_animition.xml │ │ ├── color │ │ └── ksw_md_back_color.xml │ │ ├── drawable │ │ ├── bj_animation.xml │ │ ├── bjdj_animation.xml │ │ ├── blue_led_selector.xml │ │ ├── btn_chat_add_camera_selector.xml │ │ ├── btn_chat_add_location_selector.xml │ │ ├── btn_chat_add_picture_selector.xml │ │ ├── btn_chat_add_selector.xml │ │ ├── btn_chat_emo_selector.xml │ │ ├── btn_trans_select.xml │ │ ├── cat_loading_bg.xml │ │ ├── circle_shape.xml │ │ ├── contact_indicator_slector.xml │ │ ├── corner_gray_bg.xml │ │ ├── corner_gray_little_bg.xml │ │ ├── corner_white1_bg.xml │ │ ├── corner_white_bg.xml │ │ ├── door_selector.xml │ │ ├── drawer_item_selector.xml │ │ ├── edittext_selector.xml │ │ ├── fan_animation.xml │ │ ├── green_led_selector.xml │ │ ├── image_masaage_left.9.png │ │ ├── image_masaage_left_night.9.png │ │ ├── image_masaage_right.9.png │ │ ├── image_masaage_right_night.9.png │ │ ├── item_recycler_view_selector.xml │ │ ├── ksw_md_thumb.xml │ │ ├── led_button_off_shape.xml │ │ ├── led_button_on_shape.xml │ │ ├── led_button_selector.xml │ │ ├── loading.xml │ │ ├── loading_progress_dialog.xml │ │ ├── login_button_normal_shape.xml │ │ ├── login_button_press_shape.xml │ │ ├── login_button_slector.xml │ │ ├── look_more_node_selector.xml │ │ ├── more_choice.9.png │ │ ├── node_busy_shape.xml │ │ ├── node_offline_shape.xml │ │ ├── node_sleep_shape.xml │ │ ├── pop_button_selector.xml │ │ ├── press_selector.xml │ │ ├── red_circle_shape.xml │ │ ├── red_led_selector.xml │ │ ├── select_line.xml │ │ ├── show_password_select.xml │ │ ├── tab_contact_select.xml │ │ ├── tab_discover_select.xml │ │ ├── tab_message_slect.xml │ │ ├── user_status_select.xml │ │ ├── white_corner_slector.xml │ │ ├── yellow_led_selector.xml │ │ └── zldj_animation.xml │ │ ├── layout │ │ ├── act_bj.xml │ │ ├── act_chat.xml │ │ ├── act_chat_with_node.xml │ │ ├── act_dm.xml │ │ ├── act_gd.xml │ │ ├── act_kg_node.xml │ │ ├── act_led.xml │ │ ├── act_login.xml │ │ ├── act_subscribed_nods.xml │ │ ├── activity_main.xml │ │ ├── bottom.xml │ │ ├── catloading_dialog.xml │ │ ├── chat_add_container.xml │ │ ├── chat_face_container.xml │ │ ├── custom_marker_view.xml │ │ ├── dialog_choice_list.xml │ │ ├── dropdown_lv_head.xml │ │ ├── frag_contact.xml │ │ ├── frag_discover.xml │ │ ├── frag_message.xml │ │ ├── include_drawer_layout.xml │ │ ├── item_contact_child.xml │ │ ├── item_contact_group.xml │ │ ├── item_my_response.xml │ │ ├── item_server_response.xml │ │ ├── item_session_child.xml │ │ ├── layout_kz_titlebar.xml │ │ ├── layout_titlebar.xml │ │ ├── loading_more_foot.xml │ │ ├── loading_progress_dialog.xml │ │ ├── more_node_lines.xml │ │ ├── pop_login_settings.xml │ │ ├── pop_more_options.xml │ │ ├── pop_write_data_to_node.xml │ │ ├── pop_write_data_to_smoke_node.xml │ │ ├── swipeback_layout.xml │ │ └── toolbar.xml │ │ ├── mipmap-hdpi │ │ ├── arm.png │ │ ├── bjdj.png │ │ ├── blue_led.png │ │ ├── cat.png │ │ ├── chat_add_camera_normal.png │ │ ├── chat_add_camera_press.png │ │ ├── chat_add_location_normal.png │ │ ├── chat_add_location_press.png │ │ ├── chat_add_normal.png │ │ ├── chat_add_picture_normal.png │ │ ├── chat_add_picture_press.png │ │ ├── chat_add_press.png │ │ ├── chat_emo_normal.png │ │ ├── chat_emo_press.png │ │ ├── delete_all_message.png │ │ ├── eyes.png │ │ ├── gdcgq.png │ │ ├── green_led.png │ │ ├── ic_launcher.png │ │ ├── icon_more.png │ │ ├── indicator_down.png │ │ ├── indicator_right.png │ │ ├── led.png │ │ ├── light.png │ │ ├── loading_01.png │ │ ├── loading_02.png │ │ ├── loading_03.png │ │ ├── loading_04.png │ │ ├── loading_05.png │ │ ├── loading_06.png │ │ ├── loading_07.png │ │ ├── loading_08.png │ │ ├── loading_09.png │ │ ├── loading_10.png │ │ ├── loading_11.png │ │ ├── loading_12.png │ │ ├── menci.png │ │ ├── mouse.png │ │ ├── node_fan.png │ │ ├── norm_led.png │ │ ├── online.png │ │ ├── red_led.png │ │ ├── smoke.png │ │ ├── user_status_offline.png │ │ ├── user_status_online.png │ │ ├── yellow_led.png │ │ ├── zldj.png │ │ └── zw_icon_back.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ ├── ic_weibouser_female.png │ │ ├── marker2.png │ │ ├── shadow_bottom.png │ │ ├── shadow_left.png │ │ ├── shadow_right.png │ │ ├── topmenu_icn_exit.png │ │ ├── topmenu_icn_level.png │ │ ├── topmenu_icn_msg.png │ │ ├── topmenu_icn_set.png │ │ └── topmenu_icn_time.png │ │ ├── mipmap-xhdpi │ │ ├── add_friend.png │ │ ├── bg_banner.jpg │ │ ├── bj_alarm.png │ │ ├── bj_normal.png │ │ ├── bjdj1.png │ │ ├── bjdj2.png │ │ ├── bjdj3.png │ │ ├── dl_icon_mmbkj.png │ │ ├── dl_icon_mmkj.png │ │ ├── door_close.png │ │ ├── door_open.png │ │ ├── fan1.png │ │ ├── fan2.png │ │ ├── fan3.png │ │ ├── fan4.png │ │ ├── fan5.png │ │ ├── ic_launcher.png │ │ ├── login_image.png │ │ ├── zldj1.png │ │ ├── zldj2.png │ │ ├── zldj3.png │ │ ├── zldj4.png │ │ ├── zldj5.png │ │ ├── zldj6.png │ │ └── zldj7.png │ │ ├── mipmap-xxhdpi │ │ ├── add_friend.png │ │ ├── cb_icon_discover_normal.png │ │ ├── cb_icon_discover_selected.png │ │ ├── cb_icon_more_normal.png │ │ ├── cb_icon_more_selected.png │ │ ├── cb_icon_tixing_normal.png │ │ ├── cb_icon_tixing_selected.png │ │ ├── dl_icon_mmbkj.png │ │ ├── dl_icon_mmkj.png │ │ ├── ic_launcher.png │ │ └── node_head_img.png │ │ ├── mipmap-xxxhdpi │ │ ├── bg_empty.png │ │ └── ic_launcher.png │ │ ├── raw │ │ └── alarm.mp3 │ │ ├── values-v21 │ │ └── styles.xml │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── com │ └── cqupt │ └── xmpp │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── projectFilesBackup └── .idea │ └── workspace.xml └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | -------------------------------------------------------------------------------- /.idea/.name: -------------------------------------------------------------------------------- 1 | IotXmpp -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 19 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # IotXmpp 2 | 3 | ### 软件介绍 4 | 本项目是基于XMPP的物联网客户端软件的实现,其实现的主要功能是一款能和物联网节点交互的即时通讯软件。目前支持九类传感器节点交互,主要有:温湿度、风扇、直流电机、LED灯、步进电机、门磁、光电接近、烟雾和光照。 5 | 本软件不仅能和这些传感器节点交互,还实现了类似微信的订阅和取消订阅功能。当订阅一个节点后节点就会按照设定好的周期向客户端汇报数据,客户端也能设置周期、设置报警上下限等。这些功能的实现极大的方便了我们和物联网节点的交互。 6 | 7 | ### 部分界面展示 8 | 9 | - 登录界面: 10 | ![](http://i.imgur.com/2GYk3Gj.png) 11 | 12 | - 侧滑菜单: 13 | ![](http://i.imgur.com/qAJgjbU.png) 14 | 15 | - 好友列表: 16 | ![](http://i.imgur.com/ind3qa3.png) 17 | 18 | - 消息列表: 19 | ![](http://i.imgur.com/jTWuwQX.png) 20 | 21 | - 与温湿度传感器交互: 22 | ![](http://i.imgur.com/muzwZKI.png) 23 | 24 | - 与LED灯交互: 25 | ![](http://i.imgur.com/WZo74qG.png) 26 | 27 | - 与步进电机交互: 28 | ![](http://i.imgur.com/IiNLFgu.png) 29 | 30 | 31 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 23 5 | buildToolsVersion "23.0.2" 6 | 7 | defaultConfig { 8 | applicationId "com.cqupt.xmpp" 9 | minSdkVersion 16 10 | targetSdkVersion 23 11 | versionCode 1 12 | versionName "1.0" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | } 21 | 22 | dependencies { 23 | compile fileTree(include: ['*.jar'], dir: 'libs') 24 | testCompile 'junit:junit:4.12' 25 | compile 'com.android.support:appcompat-v7:23.2.0' 26 | compile 'com.android.support:design:23.2.0' 27 | compile 'com.android.support:cardview-v7:23.2.1' 28 | compile 'com.android.support:recyclerview-v7:23.2.1' 29 | compile files('libs/httpclient-4.1.3.jar') 30 | compile files('libs/httpcore-4.1.4.jar') 31 | compile files('libs/mpandroidchartlibrary-2-2-4.jar') 32 | compile 'com.rengwuxian.materialedittext:library:2.1.4' 33 | compile 'com.google.android.gms:play-services-appindexing:8.1.0' 34 | } 35 | -------------------------------------------------------------------------------- /app/libs/httpclient-4.1.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/libs/httpclient-4.1.3.jar -------------------------------------------------------------------------------- /app/libs/httpcore-4.1.4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/libs/httpcore-4.1.4.jar -------------------------------------------------------------------------------- /app/libs/mpandroidchartlibrary-2-2-4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/libs/mpandroidchartlibrary-2-2-4.jar -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in E:\Android\sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /app/src/androidTest/java/com/cqupt/xmpp/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.cqupt.xmpp; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /app/src/main/java/com/cqupt/xmpp/adapter/MyFragmentPagerAdapter.java: -------------------------------------------------------------------------------- 1 | package com.cqupt.xmpp.adapter; 2 | 3 | import android.support.v4.app.Fragment; 4 | import android.support.v4.app.FragmentManager; 5 | import android.support.v4.app.FragmentPagerAdapter; 6 | 7 | import java.util.ArrayList; 8 | 9 | /** 10 | * Created by tiandawu on 2016/3/31. 11 | */ 12 | public class MyFragmentPagerAdapter extends FragmentPagerAdapter { 13 | private ArrayList fragments; 14 | 15 | public MyFragmentPagerAdapter(FragmentManager fm, ArrayList fragments) { 16 | super(fm); 17 | this.fragments = fragments; 18 | } 19 | 20 | @Override 21 | public Fragment getItem(int position) { 22 | return fragments.get(position); 23 | } 24 | 25 | @Override 26 | public int getCount() { 27 | return fragments.size(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/java/com/cqupt/xmpp/base/BaseFragment.java: -------------------------------------------------------------------------------- 1 | package com.cqupt.xmpp.base; 2 | 3 | import android.os.Bundle; 4 | import android.support.annotation.Nullable; 5 | import android.support.v4.app.Fragment; 6 | import android.view.LayoutInflater; 7 | import android.view.View; 8 | import android.view.ViewGroup; 9 | 10 | /** 11 | * Created by tiandawu on 2016/3/31. 12 | */ 13 | public abstract class BaseFragment extends Fragment { 14 | @Nullable 15 | @Override 16 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 17 | 18 | View view = initView(inflater,container); 19 | initData(); 20 | return view; 21 | } 22 | 23 | protected abstract View initView(LayoutInflater inflater, ViewGroup container); 24 | 25 | protected void initData() { 26 | 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/com/cqupt/xmpp/bean/ChatSession.java: -------------------------------------------------------------------------------- 1 | package com.cqupt.xmpp.bean; 2 | 3 | import java.io.Serializable; 4 | 5 | /** 6 | * Created by tiandawu on 2016/4/10. 7 | */ 8 | public class ChatSession implements Serializable { 9 | 10 | /** 11 | * 消息来自哪里 12 | */ 13 | private String from; 14 | /** 15 | * 消息发去哪里 16 | */ 17 | private String to; 18 | /** 19 | * 消息内容 20 | */ 21 | private String body; 22 | /** 23 | * 发送或者接受消息的时间 24 | */ 25 | private String time; 26 | /** 27 | * 消息属于哪个人 28 | */ 29 | private String owner; 30 | 31 | public String getBody() { 32 | return body; 33 | } 34 | 35 | public void setBody(String body) { 36 | this.body = body; 37 | } 38 | 39 | public String getFrom() { 40 | return from; 41 | } 42 | 43 | public void setFrom(String from) { 44 | this.from = from; 45 | } 46 | 47 | public String getTo() { 48 | return to; 49 | } 50 | 51 | public void setTo(String to) { 52 | this.to = to; 53 | } 54 | 55 | public String getTime() { 56 | return time; 57 | } 58 | 59 | public void setTime(String time) { 60 | this.time = time; 61 | } 62 | 63 | public String getOwner() { 64 | return owner; 65 | } 66 | 67 | public void setOwner(String owner) { 68 | this.owner = owner; 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /app/src/main/java/com/cqupt/xmpp/bean/NodeSubStatus.java: -------------------------------------------------------------------------------- 1 | package com.cqupt.xmpp.bean; 2 | 3 | /** 4 | * Created by tiandawu on 2016/4/18. 5 | */ 6 | public class NodeSubStatus { 7 | private String nodeName, period, highLimit, lowLimit; 8 | 9 | public NodeSubStatus() { 10 | this.period = "false"; 11 | this.highLimit = "false"; 12 | this.lowLimit = "false"; 13 | } 14 | 15 | public String getNodeName() { 16 | return nodeName; 17 | } 18 | 19 | public void setNodeName(String nodeName) { 20 | this.nodeName = nodeName; 21 | } 22 | 23 | public String getPeriod() { 24 | return period; 25 | } 26 | 27 | public void setPeriod(String period) { 28 | this.period = period; 29 | } 30 | 31 | public String getHighLimit() { 32 | return highLimit; 33 | } 34 | 35 | public void setHighLimit(String highLimit) { 36 | this.highLimit = highLimit; 37 | } 38 | 39 | public String getLowLimit() { 40 | return lowLimit; 41 | } 42 | 43 | public void setLowLimit(String lowLimit) { 44 | this.lowLimit = lowLimit; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /app/src/main/java/com/cqupt/xmpp/listener/AlarmListener.java: -------------------------------------------------------------------------------- 1 | package com.cqupt.xmpp.listener; 2 | 3 | /** 4 | * Created by tiandawu on 2016/5/23. 5 | */ 6 | public interface AlarmListener { 7 | 8 | void showAlarm(String from); 9 | } 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/cqupt/xmpp/listener/CheckConnectionListener.java: -------------------------------------------------------------------------------- 1 | package com.cqupt.xmpp.listener; 2 | 3 | import android.util.Log; 4 | 5 | import com.cqupt.xmpp.service.IotXmppService; 6 | 7 | import org.jivesoftware.smack.ConnectionListener; 8 | 9 | /** 10 | * Created by tiandawu on 2016/4/6. 11 | */ 12 | public class CheckConnectionListener implements ConnectionListener { 13 | private IotXmppService context; 14 | 15 | public CheckConnectionListener(IotXmppService context){ 16 | this.context=context; 17 | } 18 | @Override 19 | public void connectionClosed() { 20 | Log.e("tt", "connectionClosed"); 21 | } 22 | 23 | @Override 24 | public void connectionClosedOnError(Exception e) { 25 | Log.e("tt", "connectionClosedOnError = " + e.toString()); 26 | } 27 | 28 | @Override 29 | public void reconnectingIn(int i) { 30 | Log.e("tt", "reconnectingIn = "+i); 31 | } 32 | 33 | @Override 34 | public void reconnectionSuccessful() { 35 | 36 | Log.e("tt", "reconnectionSuccessful"); 37 | 38 | } 39 | 40 | @Override 41 | public void reconnectionFailed(Exception e) { 42 | Log.e("tt", "reconnectionFailed"); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /app/src/main/java/com/cqupt/xmpp/listener/SessionAlarmListener.java: -------------------------------------------------------------------------------- 1 | package com.cqupt.xmpp.listener; 2 | 3 | /** 4 | * Created by tiandawu on 2016/5/23. 5 | */ 6 | public interface SessionAlarmListener { 7 | 8 | void showSessionAlarm(String from); 9 | } 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/cqupt/xmpp/packet/GdMessage.java: -------------------------------------------------------------------------------- 1 | package com.cqupt.xmpp.packet; 2 | 3 | import org.jivesoftware.smack.packet.Message; 4 | 5 | /** 6 | * Created by tiandawu on 2016/5/22. 7 | */ 8 | public class GdMessage extends Message { 9 | 10 | private String from, to, gdState; 11 | 12 | /** 13 | * 光电式接近传器:B2@xmpp/B 14 | * 无(默认) 15 | * N->C: 16 | * 1/0 17 | */ 18 | 19 | @Override 20 | public String toString() { 21 | StringBuilder builder = new StringBuilder(); 22 | builder.append(""); 27 | builder.append(getGdState()); 28 | builder.append(""); 29 | return builder.toString(); 30 | } 31 | 32 | @Override 33 | public String getFrom() { 34 | return from; 35 | } 36 | 37 | @Override 38 | public void setFrom(String from) { 39 | this.from = from; 40 | } 41 | 42 | public String getGdState() { 43 | return gdState; 44 | } 45 | 46 | public void setGdState(String gdState) { 47 | this.gdState = gdState; 48 | } 49 | 50 | @Override 51 | public String getTo() { 52 | return to; 53 | } 54 | 55 | @Override 56 | public void setTo(String to) { 57 | this.to = to; 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /app/src/main/java/com/cqupt/xmpp/packet/GetDataResp.java: -------------------------------------------------------------------------------- 1 | package com.cqupt.xmpp.packet; 2 | 3 | import org.jivesoftware.smack.packet.IQ; 4 | 5 | /** 6 | * Created by tiandawu on 2016/4/14. 7 | */ 8 | public class GetDataResp extends IQ { 9 | 10 | 11 | private String var; 12 | private String value; 13 | 14 | public String getVar() { 15 | return var; 16 | } 17 | 18 | public void setVar(String var) { 19 | this.var = var; 20 | } 21 | 22 | public String getValue() { 23 | return value; 24 | } 25 | 26 | public void setValue(String value) { 27 | this.value = value; 28 | } 29 | 30 | @Override 31 | public String getChildElementXML() { 32 | StringBuilder buf = new StringBuilder(); 33 | buf.append(""); 36 | buf.append(getValue()); 37 | buf.append(""); 38 | return buf.toString(); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/java/com/cqupt/xmpp/packet/GetNodeData.java: -------------------------------------------------------------------------------- 1 | package com.cqupt.xmpp.packet; 2 | 3 | import org.jivesoftware.smack.packet.IQ; 4 | 5 | /** 6 | * Created by tiandawu on 2016/4/10. 7 | */ 8 | public class GetNodeData extends IQ { 9 | // 10 | 11 | private String dataType; 12 | 13 | public GetNodeData() { 14 | 15 | } 16 | 17 | public GetNodeData(String dataType) { 18 | this.dataType = dataType; 19 | } 20 | 21 | 22 | @Override 23 | public String getChildElementXML() { 24 | StringBuilder stringBuilder = new StringBuilder(); 25 | stringBuilder.append(""); 28 | return stringBuilder.toString(); 29 | } 30 | 31 | public String getDataType() { 32 | return dataType; 33 | } 34 | 35 | public void setDataType(String dataType) { 36 | this.dataType = dataType; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/com/cqupt/xmpp/packet/WriteNodeResp.java: -------------------------------------------------------------------------------- 1 | package com.cqupt.xmpp.packet; 2 | 3 | import org.jivesoftware.smack.packet.IQ; 4 | 5 | /** 6 | * Created by tiandawu on 2016/4/17. 7 | */ 8 | public class WriteNodeResp extends IQ { 9 | 10 | 11 | // (写入成功) 12 | 13 | @Override 14 | public String getChildElementXML() { 15 | return ""; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/cqupt/xmpp/provider/GetDataRespProvider.java: -------------------------------------------------------------------------------- 1 | package com.cqupt.xmpp.provider; 2 | 3 | import com.cqupt.xmpp.packet.GetDataResp; 4 | 5 | import org.jivesoftware.smack.packet.IQ; 6 | import org.jivesoftware.smack.provider.IQProvider; 7 | import org.xmlpull.v1.XmlPullParser; 8 | 9 | /** 10 | * Created by tiandawu on 2016/4/14. 11 | */ 12 | public class GetDataRespProvider implements IQProvider { 13 | 14 | 15 | //17.43 16 | 17 | @Override 18 | public IQ parseIQ(XmlPullParser parser) throws Exception { 19 | 20 | GetDataResp getDataResp = new GetDataResp(); 21 | boolean done = false; 22 | 23 | while (!done) { 24 | int eventType = parser.next(); 25 | if (eventType == XmlPullParser.START_TAG) { 26 | 27 | if (parser.getName().equals("attr")) { 28 | String var = parser.getAttributeValue("", "var"); 29 | String value = parser.nextText(); 30 | 31 | 32 | getDataResp.setVar(var); 33 | getDataResp.setValue(value); 34 | } 35 | 36 | 37 | } else if (eventType == XmlPullParser.END_TAG) { 38 | if (parser.getName().equals("resp")) { 39 | done = true; 40 | } 41 | } 42 | } 43 | 44 | return getDataResp; 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /app/src/main/java/com/cqupt/xmpp/provider/WriteNodeRespProvider.java: -------------------------------------------------------------------------------- 1 | package com.cqupt.xmpp.provider; 2 | 3 | import com.cqupt.xmpp.packet.WriteNodeResp; 4 | 5 | import org.jivesoftware.smack.packet.IQ; 6 | import org.jivesoftware.smack.provider.IQProvider; 7 | import org.xmlpull.v1.XmlPullParser; 8 | 9 | /** 10 | * Created by tiandawu on 2016/4/17. 11 | */ 12 | public class WriteNodeRespProvider implements IQProvider { 13 | @Override 14 | public IQ parseIQ(XmlPullParser parser) throws Exception { 15 | return new WriteNodeResp(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/com/cqupt/xmpp/utils/ActivityUtils.java: -------------------------------------------------------------------------------- 1 | package com.cqupt.xmpp.utils; 2 | 3 | import android.app.Activity; 4 | import android.content.Intent; 5 | 6 | /** 7 | * Created by tiandawu on 2016/3/2. 8 | */ 9 | public class ActivityUtils { 10 | /** 11 | * 打开Activity 12 | * @param activity 13 | * @param clazz 14 | */ 15 | public static void startActivity(Activity activity, Class clazz) { 16 | startActivity(activity,clazz,false); 17 | } 18 | 19 | /** 20 | * 打开Activity,并关闭上一个Activity 21 | * @param activity 22 | * @param clazz 23 | * @param isFinish 24 | */ 25 | public static void startActivity(Activity activity, Class clazz, boolean isFinish) { 26 | Intent intent = new Intent(activity, clazz); 27 | activity.startActivity(intent); 28 | if (isFinish) { 29 | activity.finish(); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/com/cqupt/xmpp/utils/ConstUtil.java: -------------------------------------------------------------------------------- 1 | package com.cqupt.xmpp.utils; 2 | 3 | import android.content.Context; 4 | 5 | /** 6 | * Created by tiandawu on 2016/3/31. 7 | */ 8 | public class ConstUtil { 9 | /** 10 | * 服务器ip 11 | */ 12 | public static final String XMPP_IP = "ip"; 13 | /** 14 | * 服务器端口 15 | */ 16 | public static final String XMPP_PORT = "port"; 17 | /** 18 | * SharedPreferences 的名字 19 | */ 20 | public static final String SP_NAME = "iotXmppConfig"; 21 | /** 22 | * 登陆用户名 23 | */ 24 | public static final String SP_KEY_NAME = "username"; 25 | /** 26 | * 登陆密码 27 | */ 28 | public static final String SP_KEY_PWD = "password"; 29 | 30 | /** 31 | * 登录状态广播过滤器 32 | */ 33 | public static final String LOGIN_STATUS = "com.cqupt.xmpp.login_is_success"; 34 | 35 | /** 36 | * 在线 37 | */ 38 | public static final String ON_LINE = "available"; 39 | /** 40 | * 在线 41 | */ 42 | public static final String OFF_LINE = "available"; 43 | 44 | /** 45 | * 获取所有者的jid 46 | * 47 | * @return 48 | */ 49 | public static String getOwnerJid(Context context) { 50 | return PreferencesUtils.getSharePreStr(context, SP_KEY_NAME) + "@xmpp/Smack"; 51 | } 52 | 53 | } 54 | -------------------------------------------------------------------------------- /app/src/main/java/com/cqupt/xmpp/utils/DateUtils.java: -------------------------------------------------------------------------------- 1 | package com.cqupt.xmpp.utils; 2 | 3 | import java.text.SimpleDateFormat; 4 | import java.util.Date; 5 | 6 | /** 7 | * Created by tiandawu on 2016/3/29. 8 | */ 9 | public class DateUtils { 10 | public static String getNowDateTime() { 11 | String pattern = "yyyy-MM-dd HH:mm:ss"; 12 | SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern); 13 | return simpleDateFormat.format(new Date()); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/cqupt/xmpp/widght/SwipeBackActivityBase.java: -------------------------------------------------------------------------------- 1 | package com.cqupt.xmpp.widght; 2 | 3 | /** 4 | * Created by tiandawu on 2015/12/4. 5 | */ 6 | public interface SwipeBackActivityBase { 7 | /** 8 | * @return the SwipeBackLayout associated with this activity. 9 | */ 10 | public abstract SwipeBackLayout getSwipeBackLayout(); 11 | 12 | public abstract void setSwipeBackEnable(boolean enable); 13 | 14 | /** 15 | * Scroll out contentView and finish the activity 16 | */ 17 | public abstract void scrollToFinishActivity(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /app/src/main/java/com/kenai/jbosh/BOSHClientConnListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2009 Mike Cumings 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.kenai.jbosh; 18 | 19 | /** 20 | * Interface used by parties interested in monitoring the connection state 21 | * of a client session. 22 | */ 23 | public interface BOSHClientConnListener { 24 | 25 | /** 26 | * Called when the connection state of the client which the listener 27 | * is registered against has changed. The event object supplied can 28 | * be used to determine the current session state. 29 | * 30 | * @param connEvent connection event describing the state 31 | */ 32 | void connectionEvent(BOSHClientConnEvent connEvent); 33 | 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/kenai/jbosh/BOSHClientResponseListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2009 Mike Cumings 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.kenai.jbosh; 18 | 19 | /** 20 | * Interface used by parties interested in monitoring inbound responses 21 | * to the client from the connection manager (CM). No opportunity is provided 22 | * to manipulate the response. 23 | *

24 | * Listeners are executed by the message processing thread and should not 25 | * block for any significant amount of time. 26 | */ 27 | public interface BOSHClientResponseListener { 28 | 29 | /** 30 | * Called when the listener is being notified that a response has been 31 | * received from the connection manager. 32 | * 33 | * @param event event instance containing the message being sent 34 | */ 35 | void responseReceived(BOSHMessageEvent event); 36 | 37 | } 38 | -------------------------------------------------------------------------------- /app/src/main/java/com/kenai/jbosh/BodyParser.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2009 Mike Cumings 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.kenai.jbosh; 18 | 19 | /** 20 | * Interface for parser implementations to implement in order to abstract the 21 | * business of XML parsing out of the Body class. This allows us to leverage 22 | * a variety of parser implementations to gain performance advantages. 23 | */ 24 | interface BodyParser { 25 | 26 | /** 27 | * Parses the XML message, extracting the useful data from the initial 28 | * body element and returning it in a results object. 29 | * 30 | * @param xml XML to parse 31 | * @return useful data parsed out of the XML 32 | * @throws BOSHException on parse error 33 | */ 34 | BodyParserResults parse(String xml) throws BOSHException; 35 | 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/java/com/kenai/jbosh/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Core classes of the JBOSH API. 4 |

5 | Users of the client portion of the API should start by reading 6 | up on the BOSHClient documentation. 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/java/org/apache/harmony/javax/security/auth/RefreshFailedException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. 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 | 18 | package org.apache.harmony.javax.security.auth; 19 | 20 | public class RefreshFailedException extends Exception { 21 | 22 | private static final long serialVersionUID = 5058444488565265840L; 23 | 24 | public RefreshFailedException() { 25 | super(); 26 | } 27 | 28 | public RefreshFailedException(String message) { 29 | super(message); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/org/apache/harmony/javax/security/auth/Refreshable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. 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 | 18 | package org.apache.harmony.javax.security.auth; 19 | 20 | public interface Refreshable { 21 | 22 | void refresh() throws RefreshFailedException; 23 | 24 | boolean isCurrent(); 25 | 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/org/apache/harmony/javax/security/auth/callback/Callback.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. 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 | 18 | package org.apache.harmony.javax.security.auth.callback; 19 | 20 | /** 21 | * Defines an empty base interface for all {@code Callback}s used during 22 | * authentication. 23 | */ 24 | public interface Callback { 25 | } -------------------------------------------------------------------------------- /app/src/main/java/org/apache/harmony/javax/security/auth/login/AccountException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. 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 | 18 | package org.apache.harmony.javax.security.auth.login; 19 | 20 | public class AccountException extends LoginException { 21 | 22 | private static final long serialVersionUID = -2112878680072211787L; 23 | 24 | public AccountException() { 25 | super(); 26 | } 27 | 28 | public AccountException(String message) { 29 | super(message); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/org/apache/harmony/javax/security/auth/login/AccountExpiredException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. 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 | 18 | package org.apache.harmony.javax.security.auth.login; 19 | 20 | public class AccountExpiredException extends AccountException { 21 | 22 | private static final long serialVersionUID = -6064064890162661560L; 23 | 24 | public AccountExpiredException() { 25 | super(); 26 | } 27 | 28 | public AccountExpiredException(String message) { 29 | super(message); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/org/apache/harmony/javax/security/auth/login/AccountLockedException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. 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 | 18 | package org.apache.harmony.javax.security.auth.login; 19 | 20 | public class AccountLockedException extends AccountException { 21 | 22 | private static final long serialVersionUID = 8280345554014066334L; 23 | 24 | public AccountLockedException() { 25 | super(); 26 | } 27 | 28 | public AccountLockedException(String message) { 29 | super(message); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/org/apache/harmony/javax/security/auth/login/AccountNotFoundException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. 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 | 18 | package org.apache.harmony.javax.security.auth.login; 19 | 20 | public class AccountNotFoundException extends AccountException { 21 | 22 | private static final long serialVersionUID = 1498349563916294614L; 23 | 24 | public AccountNotFoundException() { 25 | super(); 26 | } 27 | 28 | public AccountNotFoundException(String message) { 29 | super(message); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/org/apache/harmony/javax/security/auth/login/CredentialException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. 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 | 18 | package org.apache.harmony.javax.security.auth.login; 19 | 20 | public class CredentialException extends LoginException { 21 | 22 | private static final long serialVersionUID = -4772893876810601859L; 23 | 24 | public CredentialException() { 25 | super(); 26 | } 27 | 28 | public CredentialException(String message) { 29 | super(message); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/org/apache/harmony/javax/security/auth/login/CredentialExpiredException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. 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 | 18 | package org.apache.harmony.javax.security.auth.login; 19 | 20 | public class CredentialExpiredException extends CredentialException { 21 | 22 | private static final long serialVersionUID = -5344739593859737937L; 23 | 24 | public CredentialExpiredException() { 25 | super(); 26 | } 27 | 28 | public CredentialExpiredException(String message) { 29 | super(message); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/org/apache/harmony/javax/security/auth/login/CredentialNotFoundException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. 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 | 18 | package org.apache.harmony.javax.security.auth.login; 19 | 20 | public class CredentialNotFoundException extends CredentialException { 21 | 22 | private static final long serialVersionUID = -7779934467214319475L; 23 | 24 | public CredentialNotFoundException() { 25 | super(); 26 | } 27 | 28 | public CredentialNotFoundException(String message) { 29 | super(message); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/org/apache/harmony/javax/security/auth/login/FailedLoginException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. 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 | 18 | package org.apache.harmony.javax.security.auth.login; 19 | 20 | public class FailedLoginException extends LoginException { 21 | 22 | private static final long serialVersionUID = 802556922354616286L; 23 | 24 | public FailedLoginException() { 25 | super(); 26 | } 27 | 28 | public FailedLoginException(String message) { 29 | super(message); 30 | } 31 | 32 | } -------------------------------------------------------------------------------- /app/src/main/java/org/apache/harmony/javax/security/sasl/AuthenticationException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. 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 | 18 | package org.apache.harmony.javax.security.sasl; 19 | 20 | public class AuthenticationException extends SaslException { 21 | 22 | private static final long serialVersionUID = -3579708765071815007L; 23 | 24 | public AuthenticationException() { 25 | super(); 26 | } 27 | 28 | public AuthenticationException(String detail) { 29 | super(detail); 30 | } 31 | 32 | public AuthenticationException(String detail, Throwable ex) { 33 | super(detail, ex); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/org/apache/harmony/javax/security/sasl/RealmCallback.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. 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 | 18 | package org.apache.harmony.javax.security.sasl; 19 | 20 | import org.apache.harmony.javax.security.auth.callback.TextInputCallback; 21 | 22 | public class RealmCallback extends TextInputCallback { 23 | 24 | private static final long serialVersionUID = -4342673378785456908L; 25 | 26 | public RealmCallback(String prompt) { 27 | super(prompt); 28 | } 29 | 30 | public RealmCallback(String prompt, String defaultRealmInfo) { 31 | super(prompt, defaultRealmInfo); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/org/apache/harmony/javax/security/sasl/RealmChoiceCallback.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. 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 | 18 | package org.apache.harmony.javax.security.sasl; 19 | 20 | import org.apache.harmony.javax.security.auth.callback.ChoiceCallback; 21 | 22 | public class RealmChoiceCallback extends ChoiceCallback { 23 | 24 | private static final long serialVersionUID = -8588141348846281332L; 25 | 26 | public RealmChoiceCallback(String prompt, String[] choices, int defaultChoice, 27 | boolean multiple) { 28 | super(prompt, choices, defaultChoice, multiple); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/java/org/apache/harmony/javax/security/sasl/SaslClientFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. 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 | 18 | package org.apache.harmony.javax.security.sasl; 19 | 20 | import java.util.Map; 21 | import org.apache.harmony.javax.security.auth.callback.CallbackHandler; 22 | 23 | public interface SaslClientFactory { 24 | 25 | SaslClient createSaslClient(String[] mechanisms, String authorizationId, String protocol, 26 | String serverName, Map props, CallbackHandler cbh) throws SaslException; 27 | 28 | String[] getMechanismNames(Map props); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/java/org/apache/harmony/javax/security/sasl/SaslServerFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed to the Apache Software Foundation (ASF) under one or more 3 | * contributor license agreements. See the NOTICE file distributed with 4 | * this work for additional information regarding copyright ownership. 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 6 | * (the "License"); you may not use this file except in compliance with 7 | * the License. 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 | 18 | package org.apache.harmony.javax.security.sasl; 19 | 20 | import java.util.Map; 21 | import org.apache.harmony.javax.security.auth.callback.CallbackHandler; 22 | 23 | public interface SaslServerFactory { 24 | 25 | SaslServer createSaslServer(String mechanisms, String protocol, String serverName, 26 | Map props, CallbackHandler cbh) throws SaslException; 27 | 28 | String[] getMechanismNames(Map props); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/java/org/apache/qpid/management/common/sasl/Constants.java: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Licensed to the Apache Software Foundation (ASF) under one 4 | * or more contributor license agreements. See the NOTICE file 5 | * distributed with this work for additional information 6 | * regarding copyright ownership. The ASF licenses this file 7 | * to you under the Apache License, Version 2.0 (the 8 | * "License"); you may not use this file except in compliance 9 | * with the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, 14 | * software distributed under the License is distributed on an 15 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 | * KIND, either express or implied. See the License for the 17 | * specific language governing permissions and limitations 18 | * under the License. 19 | * 20 | */ 21 | 22 | package org.apache.qpid.management.common.sasl; 23 | 24 | public class Constants 25 | { 26 | 27 | public final static String MECH_CRAMMD5 = "CRAM-MD5"; 28 | public final static String MECH_PLAIN = "PLAIN"; 29 | public final static String SASL_CRAMMD5 = "SASL/CRAM-MD5"; 30 | public final static String SASL_PLAIN = "SASL/PLAIN"; 31 | 32 | } 33 | 34 | -------------------------------------------------------------------------------- /app/src/main/java/org/apache/qpid/management/common/sasl/SaslProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Licensed to the Apache Software Foundation (ASF) under one 4 | * or more contributor license agreements. See the NOTICE file 5 | * distributed with this work for additional information 6 | * regarding copyright ownership. The ASF licenses this file 7 | * to you under the Apache License, Version 2.0 (the 8 | * "License"); you may not use this file except in compliance 9 | * with the License. You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, 14 | * software distributed under the License is distributed on an 15 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 | * KIND, either express or implied. See the License for the 17 | * specific language governing permissions and limitations 18 | * under the License. 19 | * 20 | */ 21 | package org.apache.qpid.management.common.sasl; 22 | 23 | import java.security.Provider; 24 | 25 | public class SaslProvider extends Provider 26 | { 27 | private static final long serialVersionUID = -6978096016899676466L; 28 | 29 | public SaslProvider() 30 | { 31 | super("SaslClientFactory", 1.0, "SASL PLAIN CLIENT MECHANISM"); 32 | put("SaslClientFactory.PLAIN", "ClientSaslFactory"); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smack/ChatManagerListener.java: -------------------------------------------------------------------------------- 1 | /** 2 | * $RCSfile$ 3 | * $Revision: 2407 $ 4 | * $Date: 2004-11-02 15:37:00 -0800 (Tue, 02 Nov 2004) $ 5 | * 6 | * Copyright 2003-2007 Jive Software. 7 | * 8 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package org.jivesoftware.smack; 22 | 23 | /** 24 | * A listener for chat related events. 25 | * 26 | * @author Alexander Wenckus 27 | */ 28 | public interface ChatManagerListener { 29 | 30 | /** 31 | * Event fired when a new chat is created. 32 | * 33 | * @param chat the chat that was created. 34 | * @param createdLocally true if the chat was created by the local user and false if it wasn't. 35 | */ 36 | void chatCreated(Chat chat, boolean createdLocally); 37 | } 38 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smack/MessageListener.java: -------------------------------------------------------------------------------- 1 | /** 2 | * $RCSfile$ 3 | * $Revision: 2407 $ 4 | * $Date: 2004-11-02 15:37:00 -0800 (Tue, 02 Nov 2004) $ 5 | * 6 | * Copyright 2003-2007 Jive Software. 7 | * 8 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package org.jivesoftware.smack; 22 | 23 | import org.jivesoftware.smack.packet.Message; 24 | 25 | /** 26 | * 27 | */ 28 | public interface MessageListener { 29 | void processMessage(Chat chat, Message message); 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smack/compression/XMPPInputOutputStream.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2013 Florian Schmaus 3 | * 4 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package org.jivesoftware.smack.compression; 17 | 18 | import java.io.InputStream; 19 | import java.io.OutputStream; 20 | 21 | public abstract class XMPPInputOutputStream { 22 | protected String compressionMethod; 23 | 24 | public String getCompressionMethod() { 25 | return compressionMethod; 26 | } 27 | 28 | public abstract boolean isSupported(); 29 | 30 | public abstract InputStream getInputStream(InputStream inputStream) throws Exception; 31 | 32 | public abstract OutputStream getOutputStream(OutputStream outputStream) throws Exception; 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smack/debugger/package.html: -------------------------------------------------------------------------------- 1 | Core debugger functionality. -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smack/filter/package.html: -------------------------------------------------------------------------------- 1 | Allows {@link org.jivesoftware.smack.PacketCollector} and {@link org.jivesoftware.smack.PacketListener} instances to filter for packets with particular attributes. -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smack/package.html: -------------------------------------------------------------------------------- 1 | Core classes of the Smack API. -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smack/packet/package.html: -------------------------------------------------------------------------------- 1 | XML packets that are part of the XMPP protocol. -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smack/provider/package.html: -------------------------------------------------------------------------------- 1 | Provides pluggable parsing of incoming IQ's and packet extensions. -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smack/sasl/SASLCramMD5Mechanism.java: -------------------------------------------------------------------------------- 1 | /** 2 | * $RCSfile$ 3 | * $Revision$ 4 | * $Date$ 5 | * 6 | * 7 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | */ 19 | 20 | package org.jivesoftware.smack.sasl; 21 | 22 | import org.jivesoftware.smack.SASLAuthentication; 23 | 24 | /** 25 | * Implementation of the SASL CRAM-MD5 mechanism 26 | * 27 | * @author Jay Kline 28 | */ 29 | public class SASLCramMD5Mechanism extends SASLMechanism { 30 | 31 | public SASLCramMD5Mechanism(SASLAuthentication saslAuthentication) { 32 | super(saslAuthentication); 33 | } 34 | 35 | protected String getName() { 36 | return "CRAM-MD5"; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smack/sasl/SASLDigestMD5Mechanism.java: -------------------------------------------------------------------------------- 1 | /** 2 | * $RCSfile$ 3 | * $Revision$ 4 | * $Date$ 5 | * 6 | * 7 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | */ 19 | 20 | package org.jivesoftware.smack.sasl; 21 | 22 | import org.jivesoftware.smack.SASLAuthentication; 23 | 24 | /** 25 | * Implementation of the SASL DIGEST-MD5 mechanism 26 | * 27 | * @author Jay Kline 28 | */ 29 | public class SASLDigestMD5Mechanism extends SASLMechanism { 30 | 31 | public SASLDigestMD5Mechanism(SASLAuthentication saslAuthentication) { 32 | super(saslAuthentication); 33 | } 34 | 35 | protected String getName() { 36 | return "DIGEST-MD5"; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smack/sasl/SASLPlainMechanism.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. 5 | * You may obtain a copy of the License at 6 | * 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | package org.jivesoftware.smack.sasl; 17 | 18 | import org.jivesoftware.smack.SASLAuthentication; 19 | 20 | /** 21 | * Implementation of the SASL PLAIN mechanism 22 | * 23 | * @author Jay Kline 24 | */ 25 | public class SASLPlainMechanism extends SASLMechanism { 26 | 27 | public SASLPlainMechanism(SASLAuthentication saslAuthentication) { 28 | super(saslAuthentication); 29 | } 30 | 31 | protected String getName() { 32 | return "PLAIN"; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smack/sasl/package.html: -------------------------------------------------------------------------------- 1 | SASL Mechanisms. -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smack/util/Base64Encoder.java: -------------------------------------------------------------------------------- 1 | /** 2 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | 15 | package org.jivesoftware.smack.util; 16 | 17 | 18 | /** 19 | * @author Florian Schmaus 20 | */ 21 | public class Base64Encoder implements StringEncoder { 22 | 23 | private static Base64Encoder instance; 24 | 25 | private Base64Encoder() { 26 | // Use getInstance() 27 | } 28 | 29 | public static Base64Encoder getInstance() { 30 | if (instance == null) { 31 | instance = new Base64Encoder(); 32 | } 33 | return instance; 34 | } 35 | 36 | public String encode(String s) { 37 | return Base64.encodeBytes(s.getBytes()); 38 | } 39 | 40 | public String decode(String s) { 41 | return new String(Base64.decode(s)); 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smack/util/ReaderListener.java: -------------------------------------------------------------------------------- 1 | /** 2 | * $RCSfile$ 3 | * $Revision$ 4 | * $Date$ 5 | * 6 | * Copyright 2003-2007 Jive Software. 7 | * 8 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package org.jivesoftware.smack.util; 22 | 23 | /** 24 | * Interface that allows for implementing classes to listen for string reading 25 | * events. Listeners are registered with ObservableReader objects. 26 | * 27 | * @see ObservableReader#addReaderListener 28 | * @see ObservableReader#removeReaderListener 29 | * 30 | * @author Gaston Dombiak 31 | */ 32 | public interface ReaderListener { 33 | 34 | /** 35 | * Notification that the Reader has read a new string. 36 | * 37 | * @param str the read String 38 | */ 39 | public abstract void read(String str); 40 | 41 | } 42 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smack/util/StringEncoder.java: -------------------------------------------------------------------------------- 1 | /** 2 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | 15 | /** 16 | * @author Florian Schmaus 17 | */ 18 | package org.jivesoftware.smack.util; 19 | 20 | // TODO move StringEncoder, Base64Encoder and Base32Encoder to smack.util 21 | 22 | public interface StringEncoder { 23 | /** 24 | * Encodes an string to another representation 25 | * 26 | * @param string 27 | * @return 28 | */ 29 | public String encode(String string); 30 | 31 | /** 32 | * Decodes an string back to it's initial representation 33 | * 34 | * @param string 35 | * @return 36 | */ 37 | public String decode(String string); 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smack/util/WriterListener.java: -------------------------------------------------------------------------------- 1 | /** 2 | * $RCSfile$ 3 | * $Revision$ 4 | * $Date$ 5 | * 6 | * Copyright 2003-2007 Jive Software. 7 | * 8 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package org.jivesoftware.smack.util; 22 | 23 | /** 24 | * Interface that allows for implementing classes to listen for string writing 25 | * events. Listeners are registered with ObservableWriter objects. 26 | * 27 | * @see ObservableWriter#addWriterListener 28 | * @see ObservableWriter#removeWriterListener 29 | * 30 | * @author Gaston Dombiak 31 | */ 32 | public interface WriterListener { 33 | 34 | /** 35 | * Notification that the Writer has written a new string. 36 | * 37 | * @param str the written string 38 | */ 39 | public abstract void write(String str); 40 | 41 | } 42 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smack/util/collections/ResettableIterator.java: -------------------------------------------------------------------------------- 1 | // GenericsNote: Converted. 2 | /* 3 | * Copyright 2003-2004 The Apache Software Foundation 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 org.jivesoftware.smack.util.collections; 18 | 19 | import java.util.Iterator; 20 | 21 | /** 22 | * Defines an iterator that can be reset back to an initial state. 23 | *

24 | * This interface allows an iterator to be repeatedly reused. 25 | * 26 | * @author Matt Hall, John Watkinson, Stephen Colebourne 27 | * @version $Revision: 1.1 $ $Date: 2005/10/11 17:05:19 $ 28 | * @since Commons Collections 3.0 29 | */ 30 | public interface ResettableIterator extends Iterator { 31 | 32 | /** 33 | * Resets the iterator back to the position at which the iterator 34 | * was created. 35 | */ 36 | public void reset(); 37 | 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smack/util/dns/DNSResolver.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2013 Florian Schmaus 3 | * 4 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package org.jivesoftware.smack.util.dns; 17 | 18 | import java.util.List; 19 | 20 | public abstract class DNSResolver { 21 | 22 | public abstract List lookupSRVRecords(String name); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smack/util/package.html: -------------------------------------------------------------------------------- 1 | Utility classes. -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/ChatStateListener.java: -------------------------------------------------------------------------------- 1 | /** 2 | * $RCSfile$ 3 | * $Revision: 2407 $ 4 | * $Date: 2004-11-02 15:37:00 -0800 (Tue, 02 Nov 2004) $ 5 | * 6 | * Copyright 2003-2007 Jive Software. 7 | * 8 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package org.jivesoftware.smackx; 22 | 23 | import org.jivesoftware.smack.Chat; 24 | import org.jivesoftware.smack.MessageListener; 25 | 26 | /** 27 | * Events for when the state of a user in a chat changes. 28 | * 29 | * @author Alexander Wenckus 30 | */ 31 | public interface ChatStateListener extends MessageListener { 32 | 33 | /** 34 | * Fired when the state of a chat with another user changes. 35 | * 36 | * @param chat the chat in which the state has changed. 37 | * @param state the new state of the participant. 38 | */ 39 | void stateChanged(Chat chat, ChatState state); 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/PEPListener.java: -------------------------------------------------------------------------------- 1 | /** 2 | * $RCSfile: PEPListener.java,v $ 3 | * $Revision: 1.1 $ 4 | * $Date: 2007/11/03 00:14:32 $ 5 | * 6 | * Copyright 2003-2007 Jive Software. 7 | * 8 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package org.jivesoftware.smackx; 22 | 23 | import org.jivesoftware.smackx.packet.PEPEvent; 24 | 25 | 26 | /** 27 | * 28 | * A listener that is fired anytime a PEP event message is received. 29 | * 30 | * @author Jeff Williams 31 | */ 32 | public interface PEPListener { 33 | 34 | /** 35 | * Called when PEP events are received as part of a presence subscribe or message filter. 36 | * 37 | * @param from the user that sent the entries. 38 | * @param event the event contained in the message. 39 | */ 40 | public void eventReceived(String from, PEPEvent event); 41 | 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/bookmark/SharedBookmark.java: -------------------------------------------------------------------------------- 1 | /** 2 | * $Revision$ 3 | * $Date$ 4 | * 5 | * Copyright 2003-2007 Jive Software. 6 | * 7 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | */ 19 | 20 | package org.jivesoftware.smackx.bookmark; 21 | 22 | /** 23 | * Interface to indicate if a bookmark is shared across the server. 24 | * 25 | * @author Alexander Wenckus 26 | */ 27 | public interface SharedBookmark { 28 | 29 | /** 30 | * Returns true if this bookmark is shared. 31 | * 32 | * @return returns true if this bookmark is shared. 33 | */ 34 | public boolean isShared(); 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/provider/CloseIQProvider.java: -------------------------------------------------------------------------------- 1 | /** 2 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | package org.jivesoftware.smackx.bytestreams.ibb.provider; 15 | 16 | import org.jivesoftware.smack.packet.IQ; 17 | import org.jivesoftware.smack.provider.IQProvider; 18 | import org.jivesoftware.smackx.bytestreams.ibb.packet.Close; 19 | import org.xmlpull.v1.XmlPullParser; 20 | 21 | /** 22 | * Parses a close In-Band Bytestream packet. 23 | * 24 | * @author Henning Staib 25 | */ 26 | public class CloseIQProvider implements IQProvider { 27 | 28 | public IQ parseIQ(XmlPullParser parser) throws Exception { 29 | String sid = parser.getAttributeValue("", "sid"); 30 | return new Close(sid); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/debugger/package.html: -------------------------------------------------------------------------------- 1 | Smack optional Debuggers. -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/entitycaps/cache/EntityCapsPersistentCache.java: -------------------------------------------------------------------------------- 1 | /** 2 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | package org.jivesoftware.smackx.entitycaps.cache; 15 | 16 | import java.io.IOException; 17 | 18 | import org.jivesoftware.smackx.packet.DiscoverInfo; 19 | 20 | public interface EntityCapsPersistentCache { 21 | /** 22 | * Add an DiscoverInfo to the persistent Cache 23 | * 24 | * @param node 25 | * @param info 26 | */ 27 | abstract void addDiscoverInfoByNodePersistent(String node, DiscoverInfo info); 28 | 29 | /** 30 | * Replay the Caches data into EntityCapsManager 31 | */ 32 | abstract void replay() throws IOException; 33 | 34 | /** 35 | * Empty the Cache 36 | */ 37 | abstract void emptyCache(); 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/filetransfer/FileTransferListener.java: -------------------------------------------------------------------------------- 1 | /** 2 | * $RCSfile$ 3 | * $Revision$ 4 | * $Date$ 5 | * 6 | * Copyright 2003-2006 Jive Software. 7 | * 8 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | package org.jivesoftware.smackx.filetransfer; 21 | 22 | /** 23 | * File transfers can cause several events to be raised. These events can be 24 | * monitored through this interface. 25 | * 26 | * @author Alexander Wenckus 27 | */ 28 | public interface FileTransferListener { 29 | /** 30 | * A request to send a file has been recieved from another user. 31 | * 32 | * @param request 33 | * The request from the other user. 34 | */ 35 | public void fileTransferRequest(final FileTransferRequest request); 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/muc/InvitationRejectionListener.java: -------------------------------------------------------------------------------- 1 | /** 2 | * $RCSfile$ 3 | * $Revision$ 4 | * $Date$ 5 | * 6 | * Copyright 2003-2007 Jive Software. 7 | * 8 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package org.jivesoftware.smackx.muc; 22 | 23 | /** 24 | * A listener that is fired anytime an invitee declines or rejects an invitation. 25 | * 26 | * @author Gaston Dombiak 27 | */ 28 | public interface InvitationRejectionListener { 29 | 30 | /** 31 | * Called when the invitee declines the invitation. 32 | * 33 | * @param invitee the invitee that declined the invitation. (e.g. hecate@shakespeare.lit). 34 | * @param reason the reason why the invitee declined the invitation. 35 | */ 36 | public abstract void invitationDeclined(String invitee, String reason); 37 | 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/muc/SubjectUpdatedListener.java: -------------------------------------------------------------------------------- 1 | /** 2 | * $RCSfile$ 3 | * $Revision$ 4 | * $Date$ 5 | * 6 | * Copyright 2003-2007 Jive Software. 7 | * 8 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | 21 | package org.jivesoftware.smackx.muc; 22 | 23 | /** 24 | * A listener that is fired anytime a MUC room changes its subject. 25 | * 26 | * @author Gaston Dombiak 27 | */ 28 | public interface SubjectUpdatedListener { 29 | 30 | /** 31 | * Called when a MUC room has changed its subject. 32 | * 33 | * @param subject the new room's subject. 34 | * @param from the user that changed the room's subject (e.g. room@conference.jabber.org/nick). 35 | */ 36 | public abstract void subjectUpdated(String subject, String from); 37 | 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/muc/package.html: -------------------------------------------------------------------------------- 1 | Classes and Interfaces that implement Multi-User Chat (MUC). -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/package.html: -------------------------------------------------------------------------------- 1 | Smack extensions API. -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/packet/package.html: -------------------------------------------------------------------------------- 1 | XML packets that are part of the XMPP extension protocols. -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/ping/PingFailedListener.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2012 Florian Schmaus 3 | * 4 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.jivesoftware.smackx.ping; 18 | 19 | public interface PingFailedListener { 20 | void pingFailed(); 21 | } -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/ping/packet/Ping.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2012 Florian Schmaus 3 | * 4 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.jivesoftware.smackx.ping.packet; 18 | 19 | import org.jivesoftware.smack.packet.IQ; 20 | import org.jivesoftware.smackx.ping.PingManager; 21 | 22 | public class Ping extends IQ { 23 | 24 | public Ping() { 25 | } 26 | 27 | public Ping(String from, String to) { 28 | setTo(to); 29 | setFrom(from); 30 | setType(Type.GET); 31 | setPacketID(getPacketID()); 32 | } 33 | 34 | public String getChildElementXML() { 35 | return "<" + PingManager.ELEMENT + " xmlns=\'" + PingManager.NAMESPACE + "\' />"; 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/ping/provider/PingProvider.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2012 Florian Schmaus 3 | * 4 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.jivesoftware.smackx.ping.provider; 18 | 19 | import org.jivesoftware.smack.packet.IQ; 20 | import org.jivesoftware.smack.provider.IQProvider; 21 | import org.jivesoftware.smackx.ping.packet.Ping; 22 | import org.xmlpull.v1.XmlPullParser; 23 | 24 | public class PingProvider implements IQProvider { 25 | 26 | public IQ parseIQ(XmlPullParser parser) throws Exception { 27 | // No need to use the ping constructor with arguments. IQ will already 28 | // have filled out all relevant fields ('from', 'to', 'id'). 29 | return new Ping(); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/provider/package.html: -------------------------------------------------------------------------------- 1 | Provides pluggable parsing logic for Smack extensions. -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/pubsub/ChildrenAssociationPolicy.java: -------------------------------------------------------------------------------- 1 | /** 2 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | package org.jivesoftware.smackx.pubsub; 15 | 16 | /** 17 | * This enumeration represents the children association policy for associating leaf nodes 18 | * with collection nodes as defined in the pubsub specification section 16.4.3 19 | * 20 | * @author Robin Collier 21 | */ 22 | public enum ChildrenAssociationPolicy 23 | { 24 | /** Anyone may associate leaf nodes with the collection */ 25 | all, 26 | 27 | /** Only collection node owners may associate leaf nodes with the collection. */ 28 | owners, 29 | 30 | /** Only those on a whitelist may associate leaf nodes with the collection. */ 31 | whitelist; 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/pubsub/CollectionNode.java: -------------------------------------------------------------------------------- 1 | /** 2 | * $RCSfile$ 3 | * $Revision$ 4 | * $Date$ 5 | * 6 | * Copyright 2003-2007 Jive Software. 7 | * 8 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | /* 21 | * Created on 2009-07-13 22 | */ 23 | package org.jivesoftware.smackx.pubsub; 24 | 25 | import org.jivesoftware.smack.Connection; 26 | 27 | public class CollectionNode extends Node 28 | { 29 | CollectionNode(Connection connection, String nodeId) 30 | { 31 | super(connection, nodeId); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/pubsub/EventElementType.java: -------------------------------------------------------------------------------- 1 | /** 2 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | package org.jivesoftware.smackx.pubsub; 15 | 16 | /** 17 | * This enumeration defines the possible event types that are supported within pubsub 18 | * event messages. 19 | * 20 | * @author Robin Collier 21 | */ 22 | public enum EventElementType 23 | { 24 | /** A node has been associated or dissassociated with a collection node */ 25 | collection, 26 | 27 | /** A node has had its configuration changed */ 28 | configuration, 29 | 30 | /** A node has been deleted */ 31 | delete, 32 | 33 | /** Items have been published to a node */ 34 | items, 35 | 36 | /** All items have been purged from a node */ 37 | purge, 38 | 39 | /** A node has been subscribed to */ 40 | subscription 41 | } 42 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/pubsub/FormType.java: -------------------------------------------------------------------------------- 1 | /** 2 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | package org.jivesoftware.smackx.pubsub; 15 | 16 | import org.jivesoftware.smackx.Form; 17 | 18 | /** 19 | * Defines the allowable types for a {@link Form} 20 | * 21 | * @author Robin Collier 22 | */ 23 | public enum FormType 24 | { 25 | form, submit, cancel, result; 26 | } -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/pubsub/ItemReply.java: -------------------------------------------------------------------------------- 1 | /** 2 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | package org.jivesoftware.smackx.pubsub; 15 | 16 | /** 17 | * These are the options for the node configuration setting {@link ConfigureForm#setItemReply(ItemReply)}, 18 | * which defines who should receive replies to items. 19 | * 20 | * @author Robin Collier 21 | */ 22 | public enum ItemReply 23 | { 24 | /** The node owner */ 25 | owner, 26 | 27 | /** The item publisher */ 28 | publisher; 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/pubsub/NodeEvent.java: -------------------------------------------------------------------------------- 1 | /** 2 | * $RCSfile$ 3 | * $Revision$ 4 | * $Date$ 5 | * 6 | * Copyright 2003-2007 Jive Software. 7 | * 8 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 9 | * you may not use this file except in compliance with the License. 10 | * You may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 | * See the License for the specific language governing permissions and 18 | * limitations under the License. 19 | */ 20 | /* 21 | * Created on 2009-05-12 22 | */ 23 | package org.jivesoftware.smackx.pubsub; 24 | 25 | abstract public class NodeEvent 26 | { 27 | private String nodeId; 28 | 29 | protected NodeEvent(String id) 30 | { 31 | nodeId = id; 32 | } 33 | 34 | public String getNodeId() 35 | { 36 | return nodeId; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/pubsub/NodeType.java: -------------------------------------------------------------------------------- 1 | /** 2 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | package org.jivesoftware.smackx.pubsub; 15 | 16 | /** 17 | * Defines the available types of nodes 18 | * 19 | * @author Robin Collier 20 | */ 21 | public enum NodeType 22 | { 23 | leaf, 24 | collection; 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/pubsub/PresenceState.java: -------------------------------------------------------------------------------- 1 | /** 2 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | package org.jivesoftware.smackx.pubsub; 15 | 16 | /** 17 | * Defines the possible valid presence states for node subscription via 18 | * {@link SubscribeForm#getShowValues()}. 19 | * 20 | * @author Robin Collier 21 | */ 22 | public enum PresenceState 23 | { 24 | chat, online, away, xa, dnd 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/pubsub/PublishModel.java: -------------------------------------------------------------------------------- 1 | /** 2 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | package org.jivesoftware.smackx.pubsub; 15 | 16 | /** 17 | * Determines who may publish to a node. Denotes possible values 18 | * for {@link ConfigureForm#setPublishModel(PublishModel)}. 19 | * 20 | * @author Robin Collier 21 | */ 22 | public enum PublishModel 23 | { 24 | /** Only publishers may publish */ 25 | publishers, 26 | 27 | /** Only subscribers may publish */ 28 | subscribers, 29 | 30 | /** Anyone may publish */ 31 | open; 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/pubsub/listener/ItemEventListener.java: -------------------------------------------------------------------------------- 1 | /** 2 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | package org.jivesoftware.smackx.pubsub.listener; 15 | 16 | import org.jivesoftware.smackx.pubsub.Item; 17 | import org.jivesoftware.smackx.pubsub.ItemPublishEvent; 18 | import org.jivesoftware.smackx.pubsub.LeafNode; 19 | 20 | /** 21 | * Defines the listener for items being published to a node. 22 | * 23 | * @see LeafNode#addItemEventListener(ItemEventListener) 24 | * 25 | * @author Robin Collier 26 | */ 27 | public interface ItemEventListener 28 | { 29 | /** 30 | * Called whenever an item is published to the node the listener 31 | * is registered with. 32 | * 33 | * @param items The publishing details. 34 | */ 35 | void handlePublishedItems(ItemPublishEvent items); 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/pubsub/listener/NodeConfigListener.java: -------------------------------------------------------------------------------- 1 | /** 2 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | package org.jivesoftware.smackx.pubsub.listener; 15 | 16 | import org.jivesoftware.smackx.pubsub.ConfigurationEvent; 17 | import org.jivesoftware.smackx.pubsub.LeafNode; 18 | 19 | /** 20 | * Defines the listener for a node being configured. 21 | * 22 | * @see LeafNode#addConfigurationListener(NodeConfigListener) 23 | * 24 | * @author Robin Collier 25 | */ 26 | public interface NodeConfigListener 27 | { 28 | /** 29 | * Called whenever the node the listener 30 | * is registered with is configured. 31 | * 32 | * @param config The configuration details. 33 | */ 34 | void handleNodeConfiguration(ConfigurationEvent config); 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/pubsub/util/XmlUtils.java: -------------------------------------------------------------------------------- 1 | /** 2 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | package org.jivesoftware.smackx.pubsub.util; 15 | 16 | import java.io.StringReader; 17 | 18 | /** 19 | * Simple utility for pretty printing xml. 20 | * 21 | * @author Robin Collier 22 | */ 23 | public class XmlUtils 24 | { 25 | 26 | static public void appendAttribute(StringBuilder builder, String att, String value) 27 | { 28 | builder.append(" "); 29 | builder.append(att); 30 | builder.append("='"); 31 | builder.append(value); 32 | builder.append("'"); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/workgroup/agent/AgentRosterListener.java: -------------------------------------------------------------------------------- 1 | /** 2 | * $Revision$ 3 | * $Date$ 4 | * 5 | * Copyright 2003-2007 Jive Software. 6 | * 7 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | */ 19 | 20 | package org.jivesoftware.smackx.workgroup.agent; 21 | 22 | import org.jivesoftware.smack.packet.Presence; 23 | 24 | /** 25 | * 26 | * @author Matt Tucker 27 | */ 28 | public interface AgentRosterListener { 29 | 30 | public void agentAdded(String jid); 31 | 32 | public void agentRemoved(String jid); 33 | 34 | public void presenceChanged(Presence presence); 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/org/jivesoftware/smackx/workgroup/agent/OfferConfirmationListener.java: -------------------------------------------------------------------------------- 1 | /** 2 | * $Revision$ 3 | * $Date$ 4 | * 5 | * Copyright 2003-2007 Jive Software. 6 | * 7 | * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | */ 19 | package org.jivesoftware.smackx.workgroup.agent; 20 | 21 | public interface OfferConfirmationListener { 22 | 23 | 24 | /** 25 | * The implementing class instance will be notified via this when the AgentSession has confirmed 26 | * the acceptance of the Offer. The instance will then have the ability to create the room and 27 | * send the service the room name created for tracking. 28 | * 29 | * @param confirmedOffer the ConfirmedOffer 30 | */ 31 | void offerConfirmed(OfferConfirmation confirmedOffer); 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/AFSDBRecord.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * AFS Data Base Record - maps a domain name to the name of an AFS cell 7 | * database server. 8 | * 9 | * 10 | * @author Brian Wellington 11 | */ 12 | 13 | public class AFSDBRecord extends U16NameBase { 14 | 15 | private static final long serialVersionUID = 3034379930729102437L; 16 | 17 | AFSDBRecord() {} 18 | 19 | Record 20 | getObject() { 21 | return new AFSDBRecord(); 22 | } 23 | 24 | /** 25 | * Creates an AFSDB Record from the given data. 26 | * @param subtype Indicates the type of service provided by the host. 27 | * @param host The host providing the service. 28 | */ 29 | public 30 | AFSDBRecord(Name name, int dclass, long ttl, int subtype, Name host) { 31 | super(name, Type.AFSDB, dclass, ttl, subtype, "subtype", host, "host"); 32 | } 33 | 34 | /** Gets the subtype indicating the service provided by the host. */ 35 | public int 36 | getSubtype() { 37 | return getU16Field(); 38 | } 39 | 40 | /** Gets the host providing service for the domain. */ 41 | public Name 42 | getHost() { 43 | return getNameField(); 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/CNAMERecord.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * CNAME Record - maps an alias to its real name 7 | * 8 | * @author Brian Wellington 9 | */ 10 | 11 | public class CNAMERecord extends SingleCompressedNameBase { 12 | 13 | private static final long serialVersionUID = -4020373886892538580L; 14 | 15 | CNAMERecord() {} 16 | 17 | Record 18 | getObject() { 19 | return new CNAMERecord(); 20 | } 21 | 22 | /** 23 | * Creates a new CNAMERecord with the given data 24 | * @param alias The name to which the CNAME alias points 25 | */ 26 | public 27 | CNAMERecord(Name name, int dclass, long ttl, Name alias) { 28 | super(name, Type.CNAME, dclass, ttl, alias, "alias"); 29 | } 30 | 31 | /** 32 | * Gets the target of the CNAME Record 33 | */ 34 | public Name 35 | getTarget() { 36 | return getSingleName(); 37 | } 38 | 39 | /** Gets the alias specified by the CNAME Record */ 40 | public Name 41 | getAlias() { 42 | return getSingleName(); 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/DHCIDRecord.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2008 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | import java.io.*; 6 | import org.xbill.DNS.utils.base64; 7 | 8 | /** 9 | * DHCID - Dynamic Host Configuration Protocol (DHCP) ID (RFC 4701) 10 | * 11 | * @author Brian Wellington 12 | */ 13 | 14 | public class DHCIDRecord extends Record { 15 | 16 | private static final long serialVersionUID = -8214820200808997707L; 17 | 18 | private byte [] data; 19 | 20 | DHCIDRecord() {} 21 | 22 | Record 23 | getObject() { 24 | return new DHCIDRecord(); 25 | } 26 | 27 | /** 28 | * Creates an DHCID Record from the given data 29 | * @param data The binary data, which is opaque to DNS. 30 | */ 31 | public 32 | DHCIDRecord(Name name, int dclass, long ttl, byte [] data) { 33 | super(name, Type.DHCID, dclass, ttl); 34 | this.data = data; 35 | } 36 | 37 | void 38 | rrFromWire(DNSInput in) throws IOException { 39 | data = in.readByteArray(); 40 | } 41 | 42 | void 43 | rdataFromString(Tokenizer st, Name origin) throws IOException { 44 | data = st.getBase64(); 45 | } 46 | 47 | void 48 | rrToWire(DNSOutput out, Compression c, boolean canonical) { 49 | out.writeByteArray(data); 50 | } 51 | 52 | String 53 | rrToString() { 54 | return base64.toString(data); 55 | } 56 | 57 | /** 58 | * Returns the binary data. 59 | */ 60 | public byte [] 61 | getData() { 62 | return data; 63 | } 64 | 65 | } 66 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/DNAMERecord.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * DNAME Record - maps a nonterminal alias (subtree) to a different domain 7 | * 8 | * @author Brian Wellington 9 | */ 10 | 11 | public class DNAMERecord extends SingleNameBase { 12 | 13 | private static final long serialVersionUID = 2670767677200844154L; 14 | 15 | DNAMERecord() {} 16 | 17 | Record 18 | getObject() { 19 | return new DNAMERecord(); 20 | } 21 | 22 | /** 23 | * Creates a new DNAMERecord with the given data 24 | * @param alias The name to which the DNAME alias points 25 | */ 26 | public 27 | DNAMERecord(Name name, int dclass, long ttl, Name alias) { 28 | super(name, Type.DNAME, dclass, ttl, alias, "alias"); 29 | } 30 | 31 | /** 32 | * Gets the target of the DNAME Record 33 | */ 34 | public Name 35 | getTarget() { 36 | return getSingleName(); 37 | } 38 | 39 | /** Gets the alias specified by the DNAME Record */ 40 | public Name 41 | getAlias() { 42 | return getSingleName(); 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/EmptyRecord.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | import java.io.*; 6 | 7 | /** 8 | * A class implementing Records with no data; that is, records used in 9 | * the question section of messages and meta-records in dynamic update. 10 | * 11 | * @author Brian Wellington 12 | */ 13 | 14 | class EmptyRecord extends Record { 15 | 16 | private static final long serialVersionUID = 3601852050646429582L; 17 | 18 | EmptyRecord() {} 19 | 20 | Record 21 | getObject() { 22 | return new EmptyRecord(); 23 | } 24 | 25 | void 26 | rrFromWire(DNSInput in) throws IOException { 27 | } 28 | 29 | void 30 | rdataFromString(Tokenizer st, Name origin) throws IOException { 31 | } 32 | 33 | String 34 | rrToString() { 35 | return ""; 36 | } 37 | 38 | void 39 | rrToWire(DNSOutput out, Compression c, boolean canonical) { 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/ExtendedFlags.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * Constants and functions relating to EDNS flags. 7 | * 8 | * @author Brian Wellington 9 | */ 10 | 11 | public final class ExtendedFlags { 12 | 13 | private static Mnemonic extflags = new Mnemonic("EDNS Flag", 14 | Mnemonic.CASE_LOWER); 15 | 16 | /** dnssec ok */ 17 | public static final int DO = 0x8000; 18 | 19 | static { 20 | extflags.setMaximum(0xFFFF); 21 | extflags.setPrefix("FLAG"); 22 | extflags.setNumericAllowed(true); 23 | 24 | extflags.add(DO, "do"); 25 | } 26 | 27 | private 28 | ExtendedFlags() {} 29 | 30 | /** Converts a numeric extended flag into a String */ 31 | public static String 32 | string(int i) { 33 | return extflags.getText(i); 34 | } 35 | 36 | /** 37 | * Converts a textual representation of an extended flag into its numeric 38 | * value 39 | */ 40 | public static int 41 | value(String s) { 42 | return extflags.getValue(s); 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/GenericEDNSOption.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) 2 | package org.xbill.DNS; 3 | 4 | import java.io.*; 5 | 6 | import org.xbill.DNS.utils.base16; 7 | 8 | /** 9 | * An EDNSOption with no internal structure. 10 | * 11 | * @author Ming Zhou <mizhou@bnivideo.com>, Beaumaris Networks 12 | * @author Brian Wellington 13 | */ 14 | public class GenericEDNSOption extends EDNSOption { 15 | 16 | private byte [] data; 17 | 18 | GenericEDNSOption(int code) { 19 | super(code); 20 | } 21 | 22 | /** 23 | * Construct a generic EDNS option. 24 | * @param data The contents of the option. 25 | */ 26 | public 27 | GenericEDNSOption(int code, byte [] data) { 28 | super(code); 29 | this.data = Record.checkByteArrayLength("option data", data, 0xFFFF); 30 | } 31 | 32 | void 33 | optionFromWire(DNSInput in) throws IOException { 34 | data = in.readByteArray(); 35 | } 36 | 37 | void 38 | optionToWire(DNSOutput out) { 39 | out.writeByteArray(data); 40 | } 41 | 42 | String 43 | optionToString() { 44 | return "<" + base16.toString(data) + ">"; 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/InvalidDClassException.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2003-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * An exception thrown when an invalid dclass code is specified. 7 | * 8 | * @author Brian Wellington 9 | */ 10 | 11 | public class InvalidDClassException extends IllegalArgumentException { 12 | 13 | public 14 | InvalidDClassException(int dclass) { 15 | super("Invalid DNS class: " + dclass); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/InvalidTTLException.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2003-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * An exception thrown when an invalid TTL is specified. 7 | * 8 | * @author Brian Wellington 9 | */ 10 | 11 | public class InvalidTTLException extends IllegalArgumentException { 12 | 13 | public 14 | InvalidTTLException(long ttl) { 15 | super("Invalid DNS TTL: " + ttl); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/InvalidTypeException.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2003-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * An exception thrown when an invalid type code is specified. 7 | * 8 | * @author Brian Wellington 9 | */ 10 | 11 | public class InvalidTypeException extends IllegalArgumentException { 12 | 13 | public 14 | InvalidTypeException(int type) { 15 | super("Invalid DNS type: " + type); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/KXRecord.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * Key Exchange - delegation of authority 7 | * 8 | * @author Brian Wellington 9 | */ 10 | 11 | public class KXRecord extends U16NameBase { 12 | 13 | private static final long serialVersionUID = 7448568832769757809L; 14 | 15 | KXRecord() {} 16 | 17 | Record 18 | getObject() { 19 | return new KXRecord(); 20 | } 21 | 22 | /** 23 | * Creates a KX Record from the given data 24 | * @param preference The preference of this KX. Records with lower priority 25 | * are preferred. 26 | * @param target The host that authority is delegated to 27 | */ 28 | public 29 | KXRecord(Name name, int dclass, long ttl, int preference, Name target) { 30 | super(name, Type.KX, dclass, ttl, preference, "preference", 31 | target, "target"); 32 | } 33 | 34 | /** Returns the target of the KX record */ 35 | public Name 36 | getTarget() { 37 | return getNameField(); 38 | } 39 | 40 | /** Returns the preference of this KX record */ 41 | public int 42 | getPreference() { 43 | return getU16Field(); 44 | } 45 | 46 | public Name 47 | getAdditionalName() { 48 | return getNameField(); 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/MBRecord.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * Mailbox Record - specifies a host containing a mailbox. 7 | * 8 | * @author Brian Wellington 9 | */ 10 | 11 | public class MBRecord extends SingleNameBase { 12 | 13 | private static final long serialVersionUID = 532349543479150419L; 14 | 15 | MBRecord() {} 16 | 17 | Record 18 | getObject() { 19 | return new MBRecord(); 20 | } 21 | 22 | /** 23 | * Creates a new MB Record with the given data 24 | * @param mailbox The host containing the mailbox for the domain. 25 | */ 26 | public 27 | MBRecord(Name name, int dclass, long ttl, Name mailbox) { 28 | super(name, Type.MB, dclass, ttl, mailbox, "mailbox"); 29 | } 30 | 31 | /** Gets the mailbox for the domain */ 32 | public Name 33 | getMailbox() { 34 | return getSingleName(); 35 | } 36 | 37 | public Name 38 | getAdditionalName() { 39 | return getSingleName(); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/MDRecord.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * Mail Destination Record - specifies a mail agent which delivers mail 7 | * for a domain (obsolete) 8 | * 9 | * @author Brian Wellington 10 | */ 11 | 12 | public class MDRecord extends SingleNameBase { 13 | 14 | private static final long serialVersionUID = 5268878603762942202L; 15 | 16 | MDRecord() {} 17 | 18 | Record 19 | getObject() { 20 | return new MDRecord(); 21 | } 22 | 23 | /** 24 | * Creates a new MD Record with the given data 25 | * @param mailAgent The mail agent that delivers mail for the domain. 26 | */ 27 | public 28 | MDRecord(Name name, int dclass, long ttl, Name mailAgent) { 29 | super(name, Type.MD, dclass, ttl, mailAgent, "mail agent"); 30 | } 31 | 32 | /** Gets the mail agent for the domain */ 33 | public Name 34 | getMailAgent() { 35 | return getSingleName(); 36 | } 37 | 38 | public Name 39 | getAdditionalName() { 40 | return getSingleName(); 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/MFRecord.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * Mail Forwarder Record - specifies a mail agent which forwards mail 7 | * for a domain (obsolete) 8 | * 9 | * @author Brian Wellington 10 | */ 11 | 12 | public class MFRecord extends SingleNameBase { 13 | 14 | private static final long serialVersionUID = -6670449036843028169L; 15 | 16 | MFRecord() {} 17 | 18 | Record 19 | getObject() { 20 | return new MFRecord(); 21 | } 22 | 23 | /** 24 | * Creates a new MF Record with the given data 25 | * @param mailAgent The mail agent that forwards mail for the domain. 26 | */ 27 | public 28 | MFRecord(Name name, int dclass, long ttl, Name mailAgent) { 29 | super(name, Type.MF, dclass, ttl, mailAgent, "mail agent"); 30 | } 31 | 32 | /** Gets the mail agent for the domain */ 33 | public Name 34 | getMailAgent() { 35 | return getSingleName(); 36 | } 37 | 38 | public Name 39 | getAdditionalName() { 40 | return getSingleName(); 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/MGRecord.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * Mail Group Record - specifies a mailbox which is a member of a mail group. 7 | * 8 | * @author Brian Wellington 9 | */ 10 | 11 | public class MGRecord extends SingleNameBase { 12 | 13 | private static final long serialVersionUID = -3980055550863644582L; 14 | 15 | MGRecord() {} 16 | 17 | Record 18 | getObject() { 19 | return new MGRecord(); 20 | } 21 | 22 | /** 23 | * Creates a new MG Record with the given data 24 | * @param mailbox The mailbox that is a member of the group specified by the 25 | * domain. 26 | */ 27 | public 28 | MGRecord(Name name, int dclass, long ttl, Name mailbox) { 29 | super(name, Type.MG, dclass, ttl, mailbox, "mailbox"); 30 | } 31 | 32 | /** Gets the mailbox in the mail group specified by the domain */ 33 | public Name 34 | getMailbox() { 35 | return getSingleName(); 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/MRRecord.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * Mailbox Rename Record - specifies a rename of a mailbox. 7 | * 8 | * @author Brian Wellington 9 | */ 10 | 11 | public class MRRecord extends SingleNameBase { 12 | 13 | private static final long serialVersionUID = -5617939094209927533L; 14 | 15 | MRRecord() {} 16 | 17 | Record 18 | getObject() { 19 | return new MRRecord(); 20 | } 21 | 22 | /** 23 | * Creates a new MR Record with the given data 24 | * @param newName The new name of the mailbox specified by the domain. 25 | * domain. 26 | */ 27 | public 28 | MRRecord(Name name, int dclass, long ttl, Name newName) { 29 | super(name, Type.MR, dclass, ttl, newName, "new name"); 30 | } 31 | 32 | /** Gets the new name of the mailbox specified by the domain */ 33 | public Name 34 | getNewName() { 35 | return getSingleName(); 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/MXRecord.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * Mail Exchange - specifies where mail to a domain is sent 7 | * 8 | * @author Brian Wellington 9 | */ 10 | 11 | public class MXRecord extends U16NameBase { 12 | 13 | private static final long serialVersionUID = 2914841027584208546L; 14 | 15 | MXRecord() {} 16 | 17 | Record 18 | getObject() { 19 | return new MXRecord(); 20 | } 21 | 22 | /** 23 | * Creates an MX Record from the given data 24 | * @param priority The priority of this MX. Records with lower priority 25 | * are preferred. 26 | * @param target The host that mail is sent to 27 | */ 28 | public 29 | MXRecord(Name name, int dclass, long ttl, int priority, Name target) { 30 | super(name, Type.MX, dclass, ttl, priority, "priority", 31 | target, "target"); 32 | } 33 | 34 | /** Returns the target of the MX record */ 35 | public Name 36 | getTarget() { 37 | return getNameField(); 38 | } 39 | 40 | /** Returns the priority of this MX record */ 41 | public int 42 | getPriority() { 43 | return getU16Field(); 44 | } 45 | 46 | void 47 | rrToWire(DNSOutput out, Compression c, boolean canonical) { 48 | out.writeU16(u16Field); 49 | nameField.toWire(out, c, canonical); 50 | } 51 | 52 | public Name 53 | getAdditionalName() { 54 | return getNameField(); 55 | } 56 | 57 | } 58 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/NSAP_PTRRecord.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * NSAP Pointer Record - maps a domain name representing an NSAP Address to 7 | * a hostname. 8 | * 9 | * @author Brian Wellington 10 | */ 11 | 12 | public class NSAP_PTRRecord extends SingleNameBase { 13 | 14 | private static final long serialVersionUID = 2386284746382064904L; 15 | 16 | NSAP_PTRRecord() {} 17 | 18 | Record 19 | getObject() { 20 | return new NSAP_PTRRecord(); 21 | } 22 | 23 | /** 24 | * Creates a new NSAP_PTR Record with the given data 25 | * @param target The name of the host with this address 26 | */ 27 | public 28 | NSAP_PTRRecord(Name name, int dclass, long ttl, Name target) { 29 | super(name, Type.NSAP_PTR, dclass, ttl, target, "target"); 30 | } 31 | 32 | /** Gets the target of the NSAP_PTR Record */ 33 | public Name 34 | getTarget() { 35 | return getSingleName(); 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/NSIDOption.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * The Name Server Identifier Option, define in RFC 5001. 7 | * 8 | * @see OPTRecord 9 | * 10 | * @author Brian Wellington 11 | */ 12 | public class NSIDOption extends GenericEDNSOption { 13 | 14 | private static final long serialVersionUID = 74739759292589056L; 15 | 16 | NSIDOption() { 17 | super(EDNSOption.Code.NSID); 18 | } 19 | 20 | /** 21 | * Construct an NSID option. 22 | * @param data The contents of the option. 23 | */ 24 | public 25 | NSIDOption(byte [] data) { 26 | super(EDNSOption.Code.NSID, data); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/NSRecord.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * Name Server Record - contains the name server serving the named zone 7 | * 8 | * @author Brian Wellington 9 | */ 10 | 11 | public class NSRecord extends SingleCompressedNameBase { 12 | 13 | private static final long serialVersionUID = 487170758138268838L; 14 | 15 | NSRecord() {} 16 | 17 | Record 18 | getObject() { 19 | return new NSRecord(); 20 | } 21 | 22 | /** 23 | * Creates a new NS Record with the given data 24 | * @param target The name server for the given domain 25 | */ 26 | public 27 | NSRecord(Name name, int dclass, long ttl, Name target) { 28 | super(name, Type.NS, dclass, ttl, target, "target"); 29 | } 30 | 31 | /** Gets the target of the NS Record */ 32 | public Name 33 | getTarget() { 34 | return getSingleName(); 35 | } 36 | 37 | public Name 38 | getAdditionalName() { 39 | return getSingleName(); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/NameTooLongException.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2002-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * An exception thrown when a name is longer than the maximum length of a DNS 7 | * name. 8 | * 9 | * @author Brian Wellington 10 | */ 11 | 12 | public class NameTooLongException extends WireParseException { 13 | 14 | public 15 | NameTooLongException() { 16 | super(); 17 | } 18 | 19 | public 20 | NameTooLongException(String s) { 21 | super(s); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/PTRRecord.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * Pointer Record - maps a domain name representing an Internet Address to 7 | * a hostname. 8 | * 9 | * @author Brian Wellington 10 | */ 11 | 12 | public class PTRRecord extends SingleCompressedNameBase { 13 | 14 | private static final long serialVersionUID = -8321636610425434192L; 15 | 16 | PTRRecord() {} 17 | 18 | Record 19 | getObject() { 20 | return new PTRRecord(); 21 | } 22 | 23 | /** 24 | * Creates a new PTR Record with the given data 25 | * @param target The name of the machine with this address 26 | */ 27 | public 28 | PTRRecord(Name name, int dclass, long ttl, Name target) { 29 | super(name, Type.PTR, dclass, ttl, target, "target"); 30 | } 31 | 32 | /** Gets the target of the PTR Record */ 33 | public Name 34 | getTarget() { 35 | return getSingleName(); 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/RTRecord.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * Route Through Record - lists a route preference and intermediate host. 7 | * 8 | * @author Brian Wellington 9 | */ 10 | 11 | public class RTRecord extends U16NameBase { 12 | 13 | private static final long serialVersionUID = -3206215651648278098L; 14 | 15 | RTRecord() {} 16 | 17 | Record 18 | getObject() { 19 | return new RTRecord(); 20 | } 21 | 22 | /** 23 | * Creates an RT Record from the given data 24 | * @param preference The preference of the route. Smaller numbers indicate 25 | * more preferred routes. 26 | * @param intermediateHost The domain name of the host to use as a router. 27 | */ 28 | public 29 | RTRecord(Name name, int dclass, long ttl, int preference, 30 | Name intermediateHost) 31 | { 32 | super(name, Type.RT, dclass, ttl, preference, "preference", 33 | intermediateHost, "intermediateHost"); 34 | } 35 | 36 | /** Gets the preference of the route. */ 37 | public int 38 | getPreference() { 39 | return getU16Field(); 40 | } 41 | 42 | /** Gets the host to use as a router. */ 43 | public Name 44 | getIntermediateHost() { 45 | return getNameField(); 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/RelativeNameException.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2003-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * An exception thrown when a relative name is passed as an argument to 7 | * a method requiring an absolute name. 8 | * 9 | * @author Brian Wellington 10 | */ 11 | 12 | public class RelativeNameException extends IllegalArgumentException { 13 | 14 | public 15 | RelativeNameException(Name name) { 16 | super("'" + name + "' is not an absolute name"); 17 | } 18 | 19 | public 20 | RelativeNameException(String s) { 21 | super(s); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/ResolveThread.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * A special-purpose thread used by Resolvers (both SimpleResolver and 7 | * ExtendedResolver) to perform asynchronous queries. 8 | * 9 | * @author Brian Wellington 10 | */ 11 | 12 | class ResolveThread extends Thread { 13 | 14 | private Message query; 15 | private Object id; 16 | private ResolverListener listener; 17 | private Resolver res; 18 | 19 | /** Creates a new ResolveThread */ 20 | public 21 | ResolveThread(Resolver res, Message query, Object id, 22 | ResolverListener listener) 23 | { 24 | this.res = res; 25 | this.query = query; 26 | this.id = id; 27 | this.listener = listener; 28 | } 29 | 30 | 31 | /** 32 | * Performs the query, and executes the callback. 33 | */ 34 | public void 35 | run() { 36 | try { 37 | Message response = res.send(query); 38 | listener.receiveMessage(id, response); 39 | } 40 | catch (Exception e) { 41 | listener.handleException(id, e); 42 | } 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/ResolverListener.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | import java.util.EventListener; 6 | 7 | /** 8 | * An interface to the asynchronous resolver. 9 | * @see Resolver 10 | * 11 | * @author Brian Wellington 12 | */ 13 | 14 | public interface ResolverListener extends EventListener { 15 | 16 | /** 17 | * The callback used by an asynchronous resolver 18 | * @param id The identifier returned by Resolver.sendAsync() 19 | * @param m The response message as returned by the Resolver 20 | */ 21 | void receiveMessage(Object id, Message m); 22 | 23 | /** 24 | * The callback used by an asynchronous resolver when an exception is thrown 25 | * @param id The identifier returned by Resolver.sendAsync() 26 | * @param e The thrown exception 27 | */ 28 | void handleException(Object id, Exception e); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/SPFRecord.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | import java.util.*; 6 | 7 | /** 8 | * Sender Policy Framework (RFC 4408, experimental) 9 | * 10 | * @author Brian Wellington 11 | */ 12 | 13 | public class SPFRecord extends TXTBase { 14 | 15 | private static final long serialVersionUID = -2100754352801658722L; 16 | 17 | SPFRecord() {} 18 | 19 | Record 20 | getObject() { 21 | return new SPFRecord(); 22 | } 23 | 24 | /** 25 | * Creates a SPF Record from the given data 26 | * @param strings The text strings 27 | * @throws IllegalArgumentException One of the strings has invalid escapes 28 | */ 29 | public 30 | SPFRecord(Name name, int dclass, long ttl, List strings) { 31 | super(name, Type.SPF, dclass, ttl, strings); 32 | } 33 | 34 | /** 35 | * Creates a SPF Record from the given data 36 | * @param string One text string 37 | * @throws IllegalArgumentException The string has invalid escapes 38 | */ 39 | public 40 | SPFRecord(Name name, int dclass, long ttl, String string) { 41 | super(name, Type.SPF, dclass, ttl, string); 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/SingleCompressedNameBase.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * Implements common functionality for the many record types whose format 7 | * is a single compressed name. 8 | * 9 | * @author Brian Wellington 10 | */ 11 | 12 | abstract class SingleCompressedNameBase extends SingleNameBase { 13 | 14 | private static final long serialVersionUID = -236435396815460677L; 15 | 16 | protected 17 | SingleCompressedNameBase() {} 18 | 19 | protected 20 | SingleCompressedNameBase(Name name, int type, int dclass, long ttl, 21 | Name singleName, String description) 22 | { 23 | super(name, type, dclass, ttl, singleName, description); 24 | } 25 | 26 | void 27 | rrToWire(DNSOutput out, Compression c, boolean canonical) { 28 | singleName.toWire(out, c, canonical); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/SingleNameBase.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | import java.io.*; 6 | 7 | /** 8 | * Implements common functionality for the many record types whose format 9 | * is a single name. 10 | * 11 | * @author Brian Wellington 12 | */ 13 | 14 | abstract class SingleNameBase extends Record { 15 | 16 | private static final long serialVersionUID = -18595042501413L; 17 | 18 | protected Name singleName; 19 | 20 | protected 21 | SingleNameBase() {} 22 | 23 | protected 24 | SingleNameBase(Name name, int type, int dclass, long ttl) { 25 | super(name, type, dclass, ttl); 26 | } 27 | 28 | protected 29 | SingleNameBase(Name name, int type, int dclass, long ttl, Name singleName, 30 | String description) 31 | { 32 | super(name, type, dclass, ttl); 33 | this.singleName = checkName(description, singleName); 34 | } 35 | 36 | void 37 | rrFromWire(DNSInput in) throws IOException { 38 | singleName = new Name(in); 39 | } 40 | 41 | void 42 | rdataFromString(Tokenizer st, Name origin) throws IOException { 43 | singleName = st.getName(origin); 44 | } 45 | 46 | String 47 | rrToString() { 48 | return singleName.toString(); 49 | } 50 | 51 | protected Name 52 | getSingleName() { 53 | return singleName; 54 | } 55 | 56 | void 57 | rrToWire(DNSOutput out, Compression c, boolean canonical) { 58 | singleName.toWire(out, null, canonical); 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/TXTRecord.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | import java.util.*; 6 | 7 | /** 8 | * Text - stores text strings 9 | * 10 | * @author Brian Wellington 11 | */ 12 | 13 | public class TXTRecord extends TXTBase { 14 | 15 | private static final long serialVersionUID = -5780785764284221342L; 16 | 17 | TXTRecord() {} 18 | 19 | Record 20 | getObject() { 21 | return new TXTRecord(); 22 | } 23 | 24 | /** 25 | * Creates a TXT Record from the given data 26 | * @param strings The text strings 27 | * @throws IllegalArgumentException One of the strings has invalid escapes 28 | */ 29 | public 30 | TXTRecord(Name name, int dclass, long ttl, List strings) { 31 | super(name, Type.TXT, dclass, ttl, strings); 32 | } 33 | 34 | /** 35 | * Creates a TXT Record from the given data 36 | * @param string One text string 37 | * @throws IllegalArgumentException The string has invalid escapes 38 | */ 39 | public 40 | TXTRecord(Name name, int dclass, long ttl, String string) { 41 | super(name, Type.TXT, dclass, ttl, string); 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/TextParseException.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2002-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | import java.io.*; 6 | 7 | /** 8 | * An exception thrown when unable to parse text. 9 | * 10 | * @author Brian Wellington 11 | */ 12 | 13 | public class TextParseException extends IOException { 14 | 15 | public 16 | TextParseException() { 17 | super(); 18 | } 19 | 20 | public 21 | TextParseException(String s) { 22 | super(s); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/UNKRecord.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | import java.io.*; 6 | 7 | /** 8 | * A class implementing Records of unknown and/or unimplemented types. This 9 | * class can only be initialized using static Record initializers. 10 | * 11 | * @author Brian Wellington 12 | */ 13 | 14 | public class UNKRecord extends Record { 15 | 16 | private static final long serialVersionUID = -4193583311594626915L; 17 | 18 | private byte [] data; 19 | 20 | UNKRecord() {} 21 | 22 | Record 23 | getObject() { 24 | return new UNKRecord(); 25 | } 26 | 27 | void 28 | rrFromWire(DNSInput in) throws IOException { 29 | data = in.readByteArray(); 30 | } 31 | 32 | void 33 | rdataFromString(Tokenizer st, Name origin) throws IOException { 34 | throw st.exception("invalid unknown RR encoding"); 35 | } 36 | 37 | /** Converts this Record to the String "unknown format" */ 38 | String 39 | rrToString() { 40 | return unknownToString(data); 41 | } 42 | 43 | /** Returns the contents of this record. */ 44 | public byte [] 45 | getData() { 46 | return data; 47 | } 48 | 49 | void 50 | rrToWire(DNSOutput out, Compression c, boolean canonical) { 51 | out.writeByteArray(data); 52 | } 53 | 54 | } 55 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/WireParseException.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | import java.io.*; 6 | 7 | /** 8 | * An exception thrown when a DNS message is invalid. 9 | * 10 | * @author Brian Wellington 11 | */ 12 | 13 | public class WireParseException extends IOException { 14 | 15 | public 16 | WireParseException() { 17 | super(); 18 | } 19 | 20 | public 21 | WireParseException(String s) { 22 | super(s); 23 | } 24 | 25 | public 26 | WireParseException(String s, Throwable cause) { 27 | super(s); 28 | initCause(cause); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/ZoneTransferException.java: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2003-2004 Brian Wellington (bwelling@xbill.org) 2 | 3 | package org.xbill.DNS; 4 | 5 | /** 6 | * An exception thrown when a zone transfer fails. 7 | * 8 | * @author Brian Wellington 9 | */ 10 | 11 | public class ZoneTransferException extends Exception { 12 | 13 | public 14 | ZoneTransferException() { 15 | super(); 16 | } 17 | 18 | public 19 | ZoneTransferException(String s) { 20 | super(s); 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/spi/services/sun.net.spi.nameservice.NameServiceDescriptor: -------------------------------------------------------------------------------- 1 | org.xbill.DNS.spi.DNSJavaNameServiceDescriptor 2 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/windows/DNSServer.properties: -------------------------------------------------------------------------------- 1 | host_name=Host Name 2 | primary_dns_suffix=Primary Dns Suffix 3 | dns_suffix=DNS Suffix 4 | dns_servers=DNS Servers 5 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/windows/DNSServer_de.properties: -------------------------------------------------------------------------------- 1 | host_name=Hostname 2 | primary_dns_suffix=Prim\u00E4res DNS-Suffix 3 | dns_suffix=DNS-Suffixsuchliste 4 | dns_servers=DNS-Server 5 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/windows/DNSServer_fr.properties: -------------------------------------------------------------------------------- 1 | host_name=Nom de l'h\u00F4te 2 | primary_dns_suffix=Suffixe DNS principal 3 | dns_suffix=Suffixe DNS propre \u00E0 la connexion 4 | dns_servers=Serveurs DNS 5 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/windows/DNSServer_ja.properties: -------------------------------------------------------------------------------- 1 | host_name=\u30db\u30b9\u30c8\u540d 2 | primary_dns_suffix=\u30d7\u30e9\u30a4\u30de\u30ea DNS \u30b5\u30d5\u30a3\u30c3\u30af\u30b9 3 | dns_suffix=DNS \u30b5\u30d5\u30a3\u30c3\u30af\u30b9 4 | dns_servers=DNS \u30b5\u30fc\u30d0\u30fc 5 | -------------------------------------------------------------------------------- /app/src/main/java/org/xbill/DNS/windows/DNSServer_pl.properties: -------------------------------------------------------------------------------- 1 | host_name=Nazwa hosta 2 | primary_dns_suffix=Sufiks podstawowej domeny DNS 3 | dns_suffix=Sufiks DNS konkretnego po\u0142\u0105czenia 4 | dns_servers=Serwery DNS 5 | -------------------------------------------------------------------------------- /app/src/main/res/anim/cat_loading_dialog_animition.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/color/ksw_md_back_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bj_animation.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bjdj_animation.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 10 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/blue_led_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_chat_add_camera_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_chat_add_location_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_chat_add_picture_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_chat_add_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_chat_emo_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_trans_select.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/cat_loading_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/circle_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/contact_indicator_slector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/corner_gray_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/corner_gray_little_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/corner_white1_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/corner_white_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/door_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/drawer_item_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/edittext_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/fan_animation.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 11 | 14 | 17 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/green_led_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/image_masaage_left.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/drawable/image_masaage_left.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/image_masaage_left_night.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/drawable/image_masaage_left_night.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/image_masaage_right.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/drawable/image_masaage_right.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/image_masaage_right_night.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/drawable/image_masaage_right_night.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/item_recycler_view_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/led_button_off_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/led_button_on_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/led_button_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/loading_progress_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/login_button_normal_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/login_button_press_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/login_button_slector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/look_more_node_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/more_choice.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/drawable/more_choice.9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/node_busy_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/node_offline_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/node_sleep_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/pop_button_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/press_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/red_circle_shape.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/red_led_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/select_line.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/show_password_select.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/tab_contact_select.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/tab_discover_select.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/tab_message_slect.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/user_status_select.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/white_corner_slector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/yellow_led_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/zldj_animation.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/act_dm.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 20 | 21 | 27 | 28 | 29 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /app/src/main/res/layout/act_gd.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 19 | 20 | 21 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/res/layout/chat_face_container.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 15 | 16 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/layout/custom_marker_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/layout/dropdown_lv_head.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 14 | 15 | 22 | 23 | 28 | 29 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /app/src/main/res/layout/frag_contact.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /app/src/main/res/layout/frag_discover.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 13 | 22 | 23 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/res/layout/frag_message.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 14 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/layout/loading_more_foot.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 16 | 17 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/layout/loading_progress_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 15 | 16 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/layout/pop_more_options.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 15 | 20 | 21 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/layout/swipeback_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/arm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/arm.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/bjdj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/bjdj.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/blue_led.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/blue_led.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/cat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/cat.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/chat_add_camera_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/chat_add_camera_normal.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/chat_add_camera_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/chat_add_camera_press.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/chat_add_location_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/chat_add_location_normal.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/chat_add_location_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/chat_add_location_press.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/chat_add_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/chat_add_normal.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/chat_add_picture_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/chat_add_picture_normal.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/chat_add_picture_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/chat_add_picture_press.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/chat_add_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/chat_add_press.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/chat_emo_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/chat_emo_normal.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/chat_emo_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/chat_emo_press.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/delete_all_message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/delete_all_message.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/eyes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/eyes.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/gdcgq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/gdcgq.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/green_led.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/green_led.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/icon_more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/icon_more.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/indicator_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/indicator_down.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/indicator_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/indicator_right.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/led.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/led.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/light.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/loading_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/loading_01.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/loading_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/loading_02.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/loading_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/loading_03.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/loading_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/loading_04.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/loading_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/loading_05.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/loading_06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/loading_06.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/loading_07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/loading_07.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/loading_08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/loading_08.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/loading_09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/loading_09.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/loading_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/loading_10.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/loading_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/loading_11.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/loading_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/loading_12.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/menci.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/menci.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/mouse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/mouse.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/node_fan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/node_fan.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/norm_led.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/norm_led.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/online.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/online.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/red_led.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/red_led.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/smoke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/smoke.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/user_status_offline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/user_status_offline.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/user_status_online.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/user_status_online.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/yellow_led.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/yellow_led.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/zldj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/zldj.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/zw_icon_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-hdpi/zw_icon_back.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_weibouser_female.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-mdpi/ic_weibouser_female.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/marker2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-mdpi/marker2.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/shadow_bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-mdpi/shadow_bottom.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/shadow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-mdpi/shadow_left.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/shadow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-mdpi/shadow_right.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/topmenu_icn_exit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-mdpi/topmenu_icn_exit.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/topmenu_icn_level.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-mdpi/topmenu_icn_level.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/topmenu_icn_msg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-mdpi/topmenu_icn_msg.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/topmenu_icn_set.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-mdpi/topmenu_icn_set.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/topmenu_icn_time.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-mdpi/topmenu_icn_time.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/add_friend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/add_friend.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/bg_banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/bg_banner.jpg -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/bj_alarm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/bj_alarm.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/bj_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/bj_normal.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/bjdj1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/bjdj1.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/bjdj2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/bjdj2.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/bjdj3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/bjdj3.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/dl_icon_mmbkj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/dl_icon_mmbkj.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/dl_icon_mmkj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/dl_icon_mmkj.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/door_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/door_close.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/door_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/door_open.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/fan1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/fan1.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/fan2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/fan2.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/fan3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/fan3.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/fan4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/fan4.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/fan5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/fan5.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/login_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/login_image.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/zldj1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/zldj1.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/zldj2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/zldj2.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/zldj3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/zldj3.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/zldj4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/zldj4.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/zldj5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/zldj5.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/zldj6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/zldj6.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/zldj7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xhdpi/zldj7.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/add_friend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xxhdpi/add_friend.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/cb_icon_discover_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xxhdpi/cb_icon_discover_normal.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/cb_icon_discover_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xxhdpi/cb_icon_discover_selected.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/cb_icon_more_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xxhdpi/cb_icon_more_normal.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/cb_icon_more_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xxhdpi/cb_icon_more_selected.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/cb_icon_tixing_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xxhdpi/cb_icon_tixing_normal.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/cb_icon_tixing_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xxhdpi/cb_icon_tixing_selected.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/dl_icon_mmbkj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xxhdpi/dl_icon_mmbkj.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/dl_icon_mmkj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xxhdpi/dl_icon_mmkj.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/node_head_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xxhdpi/node_head_img.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/bg_empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xxxhdpi/bg_empty.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/raw/alarm.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/app/src/main/res/raw/alarm.mp3 -------------------------------------------------------------------------------- /app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 46.0dip 4 | 20sp 5 | 10sp 6 | 12sp 7 | 14sp 8 | 16sp 9 | 18sp 10 | 11 | 42dp 12 | 11dp 13 | 11dp 14 | 11dp 15 | 10dp 16 | 17 | 20dp 18 | 21dp 19 | 2dp 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Xmpp 3 | 消息 4 | 发现 5 | 好友 6 | 账号 7 | 密码 8 | 登录 9 | 登录中... 10 | 登录失败: 11 | 新用户 12 | 登陆设置 13 | 用户名不能为空! 14 | 密码不能为空! 15 | 加载中… 16 | 在线 17 | 休眠 18 | 忙碌 19 | 离线 20 | 周期订阅 21 | 上线订阅 22 | 下线订阅 23 | 清空所有消息 24 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/test/java/com/cqupt/xmpp/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.cqupt.xmpp; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * To work on unit tests, switch the Test Artifact in the Build Variants view. 9 | */ 10 | public class ExampleUnitTest { 11 | @Test 12 | public void addition_isCorrect() throws Exception { 13 | assertEquals(4, 2 + 2); 14 | } 15 | } -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | jcenter() 6 | } 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:2.2.2' 9 | 10 | 11 | // NOTE: Do not place your application dependencies here; they belong 12 | // in the individual module build.gradle files 13 | } 14 | } 15 | 16 | allprojects { 17 | repositories { 18 | jcenter() 19 | } 20 | } 21 | 22 | task clean(type: Delete) { 23 | delete rootProject.buildDir 24 | } 25 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiandawu/IotXmpp/20339db1fa4bfdd2fbc5ca741797bf6fb5d21ceb/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Sep 14 14:36:23 CST 2016 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip 7 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | --------------------------------------------------------------------------------