├── jitpack.yml ├── settings.gradle.kts ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── library ├── src │ └── main │ │ ├── res │ │ ├── drawable-hdpi │ │ │ └── ic_alert.png │ │ ├── drawable-mdpi │ │ │ └── ic_alert.png │ │ ├── drawable-xhdpi │ │ │ └── ic_alert.png │ │ ├── xml-mcc214-mnc01 │ │ │ └── mms_config.xml │ │ ├── xml-mcc310-mnc090 │ │ │ └── mms_config.xml │ │ ├── xml-mcc310-mnc026 │ │ │ └── mms_config.xml │ │ ├── xml-mcc310-mnc260 │ │ │ └── mms_config.xml │ │ ├── xml-mcc310-mnc490 │ │ │ └── mms_config.xml │ │ ├── xml-mcc234-mnc10 │ │ │ └── mms_config.xml │ │ ├── xml-mcc234-mnc11 │ │ │ └── mms_config.xml │ │ ├── xml-mcc234-mnc15 │ │ │ └── mms_config.xml │ │ ├── xml-mcc310-mnc070 │ │ │ └── mms_config.xml │ │ ├── xml-mcc310-mnc410 │ │ │ └── mms_config.xml │ │ ├── xml-mcc310-mnc560 │ │ │ └── mms_config.xml │ │ ├── xml-mcc310-mnc680 │ │ │ └── mms_config.xml │ │ ├── xml-mcc310-mnc170 │ │ │ └── mms_config.xml │ │ ├── xml-mcc204-mnc04 │ │ │ └── mms_config.xml │ │ ├── xml-mcc208-mnc01 │ │ │ └── mms_config.xml │ │ ├── xml-mcc208-mnc10 │ │ │ └── mms_config.xml │ │ ├── xml-mcc208-mnc15 │ │ │ └── mms_config.xml │ │ ├── xml-mcc208-mnc26 │ │ │ └── mms_config.xml │ │ ├── xml-mcc214-mnc03 │ │ │ └── mms_config.xml │ │ ├── xml-mcc214-mnc07 │ │ │ └── mms_config.xml │ │ ├── xml-mcc218-mnc05 │ │ │ └── mms_config.xml │ │ ├── xml-mcc222-mnc01 │ │ │ └── mms_config.xml │ │ ├── xml-mcc222-mnc08 │ │ │ └── mms_config.xml │ │ ├── xml-mcc238-mnc02 │ │ │ └── mms_config.xml │ │ ├── xml-mcc240-mnc01 │ │ │ └── mms_config.xml │ │ ├── xml-mcc240-mnc04 │ │ │ └── mms_config.xml │ │ ├── xml-mcc240-mnc08 │ │ │ └── mms_config.xml │ │ ├── xml-mcc240-mnc24 │ │ │ └── mms_config.xml │ │ ├── xml-mcc242-mnc01 │ │ │ └── mms_config.xml │ │ ├── xml-mcc242-mnc02 │ │ │ └── mms_config.xml │ │ ├── xml-mcc262-mnc07 │ │ │ └── mms_config.xml │ │ ├── xml-mcc274-mnc02 │ │ │ └── mms_config.xml │ │ ├── xml-mcc274-mnc03 │ │ │ └── mms_config.xml │ │ ├── xml-mcc286-mnc01 │ │ │ └── mms_config.xml │ │ ├── xml-mcc286-mnc03 │ │ │ └── mms_config.xml │ │ ├── xml-mcc294-mnc01 │ │ │ └── mms_config.xml │ │ ├── xml-mcc294-mnc02 │ │ │ └── mms_config.xml │ │ ├── xml-mcc294-mnc03 │ │ │ └── mms_config.xml │ │ ├── xml-mcc302-mnc780 │ │ │ └── mms_config.xml │ │ ├── xml-mcc418-mnc05 │ │ │ └── mms_config.xml │ │ ├── xml-mcc418-mnc20 │ │ │ └── mms_config.xml │ │ ├── xml-mcc418-mnc30 │ │ │ └── mms_config.xml │ │ ├── xml-mcc420-mnc04 │ │ │ └── mms_config.xml │ │ ├── xml-mcc440-mnc10 │ │ │ └── mms_config.xml │ │ ├── xml-mcc450-mnc00 │ │ │ └── mms_config.xml │ │ ├── xml-mcc505-mnc01 │ │ │ └── mms_config.xml │ │ ├── xml-mcc604-mnc00 │ │ │ └── mms_config.xml │ │ ├── xml-mcc604-mnc02 │ │ │ └── mms_config.xml │ │ ├── xml-mcc647-mnc10 │ │ │ └── mms_config.xml │ │ ├── xml-mcc302-mnc290 │ │ │ └── mms_config.xml │ │ ├── xml-mcc310-mnc150 │ │ │ └── mms_config.xml │ │ ├── xml-mcc310-mnc420 │ │ │ └── mms_config.xml │ │ ├── xml-mcc310-mnc450 │ │ │ └── mms_config.xml │ │ ├── xml-mcc310-mnc770 │ │ │ └── mms_config.xml │ │ ├── xml-mcc310-mnc980 │ │ │ └── mms_config.xml │ │ ├── xml-mcc311-mnc370 │ │ │ └── mms_config.xml │ │ ├── xml-mcc334-mnc020 │ │ │ └── mms_config.xml │ │ ├── xml-mcc530-mnc05 │ │ │ └── mms_config.xml │ │ ├── xml-mcc310-mnc380 │ │ │ └── mms_config.xml │ │ ├── xml-mcc311-mnc180 │ │ │ └── mms_config.xml │ │ ├── xml-mcc450-mnc02 │ │ │ └── mms_config.xml │ │ ├── xml-mcc450-mnc05 │ │ │ └── mms_config.xml │ │ ├── xml-mcc450-mnc08 │ │ │ └── mms_config.xml │ │ ├── xml-mcc208-mnc20 │ │ │ └── mms_config.xml │ │ ├── xml-mcc450-mnc06 │ │ │ └── mms_config.xml │ │ ├── xml-mcc302-mnc320 │ │ │ └── mms_config.xml │ │ ├── xml-mcc302-mnc520 │ │ │ └── mms_config.xml │ │ ├── xml-mcc302-mnc220 │ │ │ └── mms_config.xml │ │ ├── xml-mcc302-mnc221 │ │ │ └── mms_config.xml │ │ ├── xml-mcc302-mnc270 │ │ │ └── mms_config.xml │ │ ├── xml-mcc302-mnc370 │ │ │ └── mms_config.xml │ │ ├── xml-mcc302-mnc490 │ │ │ └── mms_config.xml │ │ ├── xml-mcc302-mnc500 │ │ │ └── mms_config.xml │ │ ├── xml-mcc302-mnc510 │ │ │ └── mms_config.xml │ │ ├── xml-mcc302-mnc660 │ │ │ └── mms_config.xml │ │ ├── xml-mcc302-mnc720 │ │ │ └── mms_config.xml │ │ ├── xml-mcc302-mnc610 │ │ │ └── mms_config.xml │ │ └── xml-mcc440-mnc20 │ │ │ └── mms_config.xml │ │ ├── java │ │ ├── com │ │ │ ├── google │ │ │ │ └── android │ │ │ │ │ └── mms │ │ │ │ │ ├── MMSPart.java │ │ │ │ │ ├── APN.java │ │ │ │ │ ├── util_alt │ │ │ │ │ └── PduCacheEntry.java │ │ │ │ │ ├── InvalidHeaderValueException.java │ │ │ │ │ └── MmsException.java │ │ │ ├── android │ │ │ │ ├── i18n │ │ │ │ │ └── phonenumbers │ │ │ │ │ │ ├── NumberParseException.java │ │ │ │ │ │ ├── Phonenumber.java │ │ │ │ │ │ └── PhoneNumberUtil.java │ │ │ │ ├── mms │ │ │ │ │ ├── dom │ │ │ │ │ │ └── smil │ │ │ │ │ │ │ ├── SmilRefElementImpl.java │ │ │ │ │ │ │ ├── ElementTimeContainerImpl.java │ │ │ │ │ │ │ ├── TimeListImpl.java │ │ │ │ │ │ │ ├── SmilElementImpl.java │ │ │ │ │ │ │ └── SmilRegionMediaElementImpl.java │ │ │ │ │ ├── transaction │ │ │ │ │ │ ├── Observer.java │ │ │ │ │ │ ├── AbstractRetryScheme.java │ │ │ │ │ │ ├── MessageSender.java │ │ │ │ │ │ ├── MessageStatusReceiver.java │ │ │ │ │ │ ├── MmsPushOutboxMessages.java │ │ │ │ │ │ └── DefaultRetryScheme.java │ │ │ │ │ ├── util │ │ │ │ │ │ ├── ExternalLogger.java │ │ │ │ │ │ └── SendingProgressTokenManager.java │ │ │ │ │ ├── service_alt │ │ │ │ │ │ ├── exception │ │ │ │ │ │ │ ├── ApnException.java │ │ │ │ │ │ │ ├── MmsNetworkException.java │ │ │ │ │ │ │ └── MmsHttpException.java │ │ │ │ │ │ └── SubscriptionIdChecker.java │ │ │ │ │ └── layout │ │ │ │ │ │ └── LayoutParameters.java │ │ │ │ └── internal │ │ │ │ │ ├── telephony │ │ │ │ │ └── EncodeException.java │ │ │ │ │ ├── annotations │ │ │ │ │ └── VisibleForTesting.java │ │ │ │ │ └── util │ │ │ │ │ └── Objects.java │ │ │ └── klinker │ │ │ │ └── android │ │ │ │ └── send_message │ │ │ │ ├── SmsManagerFactory.java │ │ │ │ ├── StatusUpdatedReceiver.java │ │ │ │ ├── BroadcastUtils.java │ │ │ │ └── MmsSentReceiver.java │ │ ├── org │ │ │ └── w3c │ │ │ │ └── dom │ │ │ │ ├── smil │ │ │ │ ├── SMILRefElement.java │ │ │ │ ├── SMILAnimateElement.java │ │ │ │ ├── SMILAnimateColorElement.java │ │ │ │ ├── SMILTopLayoutElement.java │ │ │ │ ├── SMILRootLayoutElement.java │ │ │ │ ├── SMILParElement.java │ │ │ │ ├── SMILRegionMediaElement.java │ │ │ │ ├── ElementSequentialTimeContainer.java │ │ │ │ ├── SMILRegionInterface.java │ │ │ │ ├── SMILSetElement.java │ │ │ │ ├── SMILSwitchElement.java │ │ │ │ ├── ElementTargetAttributes.java │ │ │ │ ├── ElementTimeContainer.java │ │ │ │ ├── ElementParallelTimeContainer.java │ │ │ │ ├── SMILAnimateMotionElement.java │ │ │ │ ├── ElementExclusiveTimeContainer.java │ │ │ │ ├── ElementSyncBehavior.java │ │ │ │ ├── SMILLayoutElement.java │ │ │ │ ├── TimeList.java │ │ │ │ ├── SMILElement.java │ │ │ │ ├── ElementLayout.java │ │ │ │ ├── SMILDocument.java │ │ │ │ ├── TimeEvent.java │ │ │ │ └── SMILRegionElement.java │ │ │ │ ├── views │ │ │ │ ├── AbstractView.java │ │ │ │ └── DocumentView.java │ │ │ │ └── events │ │ │ │ ├── EventException.java │ │ │ │ └── EventListener.java │ │ └── android │ │ │ └── annotation │ │ │ └── SdkConstant.java │ │ └── AndroidManifest.xml ├── gradle.properties └── build.gradle.kts ├── .gitignore ├── gradle.properties └── .github ├── dependabot.yml └── workflows ├── pr.yml └── release.yml /jitpack.yml: -------------------------------------------------------------------------------- 1 | jdk: openjdk17 2 | -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- 1 | include(":library") -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FossifyOrg/mmslib/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /library/src/main/res/drawable-hdpi/ic_alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FossifyOrg/mmslib/HEAD/library/src/main/res/drawable-hdpi/ic_alert.png -------------------------------------------------------------------------------- /library/src/main/res/drawable-mdpi/ic_alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FossifyOrg/mmslib/HEAD/library/src/main/res/drawable-mdpi/ic_alert.png -------------------------------------------------------------------------------- /library/src/main/res/drawable-xhdpi/ic_alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FossifyOrg/mmslib/HEAD/library/src/main/res/drawable-xhdpi/ic_alert.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle/ 2 | .idea/ 3 | **/.project 4 | **/.classpath 5 | **/.settings/ 6 | **/build/ 7 | gen/ 8 | *.iml 9 | **/.DS_STORE 10 | local.properties -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 2 | org.gradle.parallel=true 3 | org.gradle.caching=true 4 | android.useAndroidX=true 5 | android.nonTransitiveRClass=true 6 | kotlin.code.style=official 7 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | 3 | updates: 4 | - package-ecosystem: "github-actions" 5 | directory: "/" 6 | schedule: 7 | interval: "weekly" 8 | commit-message: 9 | prefix: "chore" 10 | prefix-development: "chore" 11 | include: "scope" 12 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /.github/workflows/pr.yml: -------------------------------------------------------------------------------- 1 | name: PR 2 | 3 | on: 4 | pull_request: 5 | branches: [ main ] 6 | 7 | jobs: 8 | call-pr-workflow: 9 | uses: FossifyOrg/.github/.github/workflows/pr.yml@main 10 | with: 11 | test_task: ":library:testDebugUnitTest" 12 | run_detekt: false 13 | -------------------------------------------------------------------------------- /library/src/main/java/com/google/android/mms/MMSPart.java: -------------------------------------------------------------------------------- 1 | package com.google.android.mms; 2 | 3 | import android.net.Uri; 4 | 5 | public class MMSPart { 6 | public String name = ""; 7 | public String fileName = ""; 8 | public String mimeType = ""; 9 | public byte[] data; 10 | public Uri Path; 11 | } -------------------------------------------------------------------------------- /library/src/main/java/com/google/android/mms/APN.java: -------------------------------------------------------------------------------- 1 | package com.google.android.mms; 2 | 3 | public class APN { 4 | public String MMSCenterUrl = ""; 5 | public String MMSPort = ""; 6 | public String MMSProxy = ""; 7 | 8 | public APN(String MMSCenterUrl, String MMSPort, String MMSProxy) { 9 | this.MMSCenterUrl = MMSCenterUrl; 10 | this.MMSPort = MMSPort; 11 | this.MMSProxy = MMSProxy; 12 | } 13 | 14 | public APN() { 15 | 16 | } 17 | } -------------------------------------------------------------------------------- /library/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 12 | 13 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /library/gradle.properties: -------------------------------------------------------------------------------- 1 | VERSION_NAME=5.2.6 2 | VERSION_CODE=76 3 | GROUP=com.klinkerapps 4 | 5 | POM_DESCRIPTION=Android Messaging library for SMS and MMS 6 | POM_URL=https://github.com/klinker41/android-smsmms 7 | POM_SCM_URL=https://github.com/klinker41/android-smsmms 8 | POM_SCM_CONNECTION=scm:git@github.com:klinker41/android-smsmms.git 9 | POM_SCM_DEV_CONNECTION=scm:git@github.com:klinker41/android-smsmms.git 10 | POM_LICENCE_NAME=The Apache Software License, Version 2.0 11 | POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt 12 | POM_LICENCE_DIST=repo 13 | POM_DEVELOPER_ID=klinker41 14 | POM_DEVELOPER_NAME=Jacob Klinker 15 | 16 | POM_NAME=Andorid Messaging 17 | POM_ARTIFACT_ID=android-smsmms 18 | POM_PACKAGING=aar 19 | -------------------------------------------------------------------------------- /library/src/main/java/org/w3c/dom/smil/SMILRefElement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000 World Wide Web Consortium, 3 | * (Massachusetts Institute of Technology, Institut National de 4 | * Recherche en Informatique et en Automatique, Keio University). All 5 | * Rights Reserved. This program is distributed under the W3C's Software 6 | * Intellectual Property License. This program is distributed in the 7 | * hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8 | * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 9 | * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more 10 | * details. 11 | */ 12 | 13 | package org.w3c.dom.smil; 14 | 15 | /** 16 | * // audio, video, ... 17 | */ 18 | public interface SMILRefElement extends SMILMediaElement { 19 | } 20 | 21 | -------------------------------------------------------------------------------- /library/src/main/java/com/android/i18n/phonenumbers/NumberParseException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jacob Klinker 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.android.i18n.phonenumbers; 18 | 19 | public class NumberParseException extends Exception { 20 | } 21 | -------------------------------------------------------------------------------- /library/src/main/java/com/android/i18n/phonenumbers/Phonenumber.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jacob Klinker 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.android.i18n.phonenumbers; 18 | 19 | public class Phonenumber { 20 | public static class PhoneNumber { 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /library/src/main/java/org/w3c/dom/smil/SMILAnimateElement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000 World Wide Web Consortium, 3 | * (Massachusetts Institute of Technology, Institut National de 4 | * Recherche en Informatique et en Automatique, Keio University). All 5 | * Rights Reserved. This program is distributed under the W3C's Software 6 | * Intellectual Property License. This program is distributed in the 7 | * hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8 | * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 9 | * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more 10 | * details. 11 | */ 12 | 13 | package org.w3c.dom.smil; 14 | 15 | /** 16 | * This interface represents the SMIL animate element. 17 | */ 18 | public interface SMILAnimateElement extends SMILAnimation { 19 | } 20 | 21 | -------------------------------------------------------------------------------- /library/src/main/java/org/w3c/dom/smil/SMILAnimateColorElement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000 World Wide Web Consortium, 3 | * (Massachusetts Institute of Technology, Institut National de 4 | * Recherche en Informatique et en Automatique, Keio University). All 5 | * Rights Reserved. This program is distributed under the W3C's Software 6 | * Intellectual Property License. This program is distributed in the 7 | * hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8 | * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 9 | * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more 10 | * details. 11 | */ 12 | 13 | package org.w3c.dom.smil; 14 | 15 | /** 16 | * This interface represents the SMIL animateColor element. 17 | */ 18 | public interface SMILAnimateColorElement extends SMILAnimation { 19 | } 20 | 21 | -------------------------------------------------------------------------------- /library/src/main/java/org/w3c/dom/smil/SMILTopLayoutElement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000 World Wide Web Consortium, 3 | * (Massachusetts Institute of Technology, Institut National de 4 | * Recherche en Informatique et en Automatique, Keio University). All 5 | * Rights Reserved. This program is distributed under the W3C's Software 6 | * Intellectual Property License. This program is distributed in the 7 | * hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8 | * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 9 | * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more 10 | * details. 11 | */ 12 | 13 | package org.w3c.dom.smil; 14 | 15 | /** 16 | * Declares layout properties for the top-layout element. See the top-layout 17 | * element definition . 18 | */ 19 | public interface SMILTopLayoutElement extends SMILElement, ElementLayout { 20 | } 21 | 22 | -------------------------------------------------------------------------------- /library/src/main/java/org/w3c/dom/smil/SMILRootLayoutElement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000 World Wide Web Consortium, 3 | * (Massachusetts Institute of Technology, Institut National de 4 | * Recherche en Informatique et en Automatique, Keio University). All 5 | * Rights Reserved. This program is distributed under the W3C's Software 6 | * Intellectual Property License. This program is distributed in the 7 | * hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8 | * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 9 | * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more 10 | * details. 11 | */ 12 | 13 | package org.w3c.dom.smil; 14 | 15 | /** 16 | * Declares layout properties for the root-layout element. See the 17 | * root-layout element definition . 18 | */ 19 | public interface SMILRootLayoutElement extends SMILElement, ElementLayout { 20 | } 21 | 22 | -------------------------------------------------------------------------------- /library/src/main/java/org/w3c/dom/smil/SMILParElement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007-2008 Esmertec AG. 3 | * Copyright (C) 2007-2008 The Android Open Source Project 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.w3c.dom.smil; 19 | 20 | public interface SMILParElement extends ElementParallelTimeContainer, 21 | SMILElement { 22 | 23 | } 24 | -------------------------------------------------------------------------------- /library/src/main/java/org/w3c/dom/smil/SMILRegionMediaElement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007-2008 Esmertec AG. 3 | * Copyright (C) 2007-2008 The Android Open Source Project 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package org.w3c.dom.smil; 19 | 20 | public interface SMILRegionMediaElement extends SMILMediaElement, 21 | SMILRegionInterface { 22 | } 23 | -------------------------------------------------------------------------------- /library/src/main/java/org/w3c/dom/smil/ElementSequentialTimeContainer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000 World Wide Web Consortium, 3 | * (Massachusetts Institute of Technology, Institut National de 4 | * Recherche en Informatique et en Automatique, Keio University). All 5 | * Rights Reserved. This program is distributed under the W3C's Software 6 | * Intellectual Property License. This program is distributed in the 7 | * hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8 | * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 9 | * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more 10 | * details. 11 | */ 12 | 13 | package org.w3c.dom.smil; 14 | 15 | /** 16 | * A seq container defines a sequence of elements in which 17 | * elements play one after the other. 18 | */ 19 | public interface ElementSequentialTimeContainer extends ElementTimeContainer { 20 | } 21 | 22 | -------------------------------------------------------------------------------- /library/src/main/java/org/w3c/dom/smil/SMILRegionInterface.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000 World Wide Web Consortium, 3 | * (Massachusetts Institute of Technology, Institut National de 4 | * Recherche en Informatique et en Automatique, Keio University). All 5 | * Rights Reserved. This program is distributed under the W3C's Software 6 | * Intellectual Property License. This program is distributed in the 7 | * hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8 | * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 9 | * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more 10 | * details. 11 | */ 12 | 13 | package org.w3c.dom.smil; 14 | 15 | /** 16 | * Declares rendering surface for an element. See the region attribute 17 | * definition . 18 | */ 19 | public interface SMILRegionInterface { 20 | /** 21 | */ 22 | public SMILRegionElement getRegion(); 23 | public void setRegion(SMILRegionElement region); 24 | 25 | } 26 | 27 | -------------------------------------------------------------------------------- /library/src/main/java/org/w3c/dom/smil/SMILSetElement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000 World Wide Web Consortium, 3 | * (Massachusetts Institute of Technology, Institut National de 4 | * Recherche en Informatique et en Automatique, Keio University). All 5 | * Rights Reserved. This program is distributed under the W3C's Software 6 | * Intellectual Property License. This program is distributed in the 7 | * hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8 | * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 9 | * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more 10 | * details. 11 | */ 12 | 13 | package org.w3c.dom.smil; 14 | 15 | /** 16 | * This interface represents the set element. 17 | */ 18 | public interface SMILSetElement extends ElementTimeControl, ElementTime, ElementTargetAttributes, SMILElement { 19 | /** 20 | * Specifies the value for the attribute during the duration of this 21 | * element. 22 | */ 23 | public String getTo(); 24 | public void setTo(String to); 25 | 26 | } 27 | 28 | -------------------------------------------------------------------------------- /library/src/main/java/com/android/mms/dom/smil/SmilRefElementImpl.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007 Esmertec AG. 3 | * Copyright (C) 2007 The Android Open Source Project 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.android.mms.dom.smil; 19 | 20 | import org.w3c.dom.smil.SMILRefElement; 21 | 22 | public class SmilRefElementImpl extends SmilRegionMediaElementImpl implements 23 | SMILRefElement { 24 | 25 | SmilRefElementImpl(SmilDocumentImpl owner, String tagName) { 26 | super(owner, tagName); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /library/src/main/java/com/android/mms/transaction/Observer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007 Esmertec AG. 3 | * Copyright (C) 2007 The Android Open Source Project 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.android.mms.transaction; 19 | 20 | /** 21 | * An interface for observing the state of a Transaction. 22 | */ 23 | public interface Observer { 24 | 25 | /** 26 | * Update the state of the observable. 27 | * 28 | * @param observable An observable object. 29 | */ 30 | void update(Observable observable); 31 | 32 | } 33 | -------------------------------------------------------------------------------- /library/src/main/java/com/klinker/android/send_message/SmsManagerFactory.java: -------------------------------------------------------------------------------- 1 | package com.klinker.android.send_message; 2 | 3 | import android.os.Build; 4 | import android.telephony.SmsManager; 5 | 6 | public class SmsManagerFactory { 7 | 8 | public static SmsManager createSmsManager(Settings settings) { 9 | return createSmsManager(settings.getSubscriptionId()); 10 | } 11 | 12 | public static SmsManager createSmsManager(int subscriptionId) { 13 | if (subscriptionId != Settings.DEFAULT_SUBSCRIPTION_ID && 14 | Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) { 15 | SmsManager manager = null; 16 | 17 | try { 18 | manager = SmsManager.getSmsManagerForSubscriptionId(subscriptionId); 19 | } catch (Exception e) { 20 | e.printStackTrace(); 21 | } 22 | 23 | if (manager != null) { 24 | return manager; 25 | } else { 26 | return SmsManager.getDefault(); 27 | } 28 | } else { 29 | return SmsManager.getDefault(); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc214-mnc01/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 22 | 23 | 24 | 25 | false 26 | 27 | -------------------------------------------------------------------------------- /library/src/main/java/org/w3c/dom/views/AbstractView.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000 World Wide Web Consortium, 3 | * (Massachusetts Institute of Technology, Institut National de 4 | * Recherche en Informatique et en Automatique, Keio University). All 5 | * Rights Reserved. This program is distributed under the W3C's Software 6 | * Intellectual Property License. This program is distributed in the 7 | * hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8 | * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 9 | * PURPOSE. 10 | * See W3C License http://www.w3.org/Consortium/Legal/ for more details. 11 | */ 12 | 13 | package org.w3c.dom.views; 14 | 15 | /** 16 | * A base interface that all views shall derive from. 17 | *

See also the Document Object Model (DOM) Level 2 Views Specification. 18 | * @since DOM Level 2 19 | */ 20 | public interface AbstractView { 21 | /** 22 | * The source DocumentView of which this is an 23 | * AbstractView. 24 | */ 25 | public DocumentView getDocument(); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /library/src/main/java/com/klinker/android/send_message/StatusUpdatedReceiver.java: -------------------------------------------------------------------------------- 1 | package com.klinker.android.send_message; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | 7 | public abstract class StatusUpdatedReceiver extends BroadcastReceiver { 8 | 9 | // Updates the status of the message in the internal database 10 | public abstract void updateInInternalDatabase(Context context, Intent intent, int receiverResultCode); 11 | 12 | // allows the implementer to update the status of the message in their database 13 | public abstract void onMessageStatusUpdated(Context context, Intent intent, int receiverResultCode); 14 | 15 | @Override 16 | public final void onReceive(final Context context, final Intent intent) { 17 | final int resultCode = getResultCode(); 18 | new Thread(new Runnable() { 19 | @Override 20 | public void run() { 21 | onMessageStatusUpdated(context, intent, resultCode); 22 | updateInInternalDatabase(context, intent, resultCode); 23 | } 24 | }).start(); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /library/src/main/java/com/android/internal/telephony/EncodeException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2006 The Android Open Source Project 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.android.internal.telephony; 18 | 19 | /** 20 | * {@hide} 21 | */ 22 | @SuppressWarnings("serial") 23 | public class EncodeException extends Exception { 24 | public EncodeException() { 25 | super(); 26 | } 27 | 28 | public EncodeException(String s) { 29 | super(s); 30 | } 31 | 32 | public EncodeException(char c) { 33 | super("Unencodable char: '" + c + "'"); 34 | } 35 | } 36 | 37 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc310-mnc090/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 20 | 21 | 614400 22 | 23 | 24 | 1944 25 | 26 | 27 | 2592 28 | 29 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc310-mnc026/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 20 | 21 | 1048576 22 | 23 | 24 | 1944 25 | 26 | 27 | 2592 28 | 29 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc310-mnc260/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 20 | 21 | 1048576 22 | 23 | 24 | 1944 25 | 26 | 27 | 2592 28 | 29 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc310-mnc490/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 20 | 21 | 1048576 22 | 23 | 24 | 1944 25 | 26 | 27 | 2592 28 | 29 | -------------------------------------------------------------------------------- /library/src/main/java/com/android/mms/util/ExternalLogger.java: -------------------------------------------------------------------------------- 1 | 2 | package com.android.mms.util; 3 | 4 | 5 | import java.util.concurrent.CopyOnWriteArrayList; 6 | 7 | public class ExternalLogger { 8 | private static final CopyOnWriteArrayList sListener = new CopyOnWriteArrayList(); 9 | 10 | public interface LoggingListener { 11 | void onLogException(String tag, Throwable e); 12 | void onLogMessage(String tag, String message); 13 | } 14 | 15 | private ExternalLogger(){} 16 | 17 | public static void addListener(LoggingListener listener) { 18 | sListener.add(listener); 19 | } 20 | 21 | public static void removeListener(LoggingListener listener) { 22 | sListener.remove(listener); 23 | } 24 | 25 | public static void logException(String tag, Throwable e) { 26 | for (LoggingListener listener: sListener) { 27 | listener.onLogException(tag, e); 28 | } 29 | } 30 | 31 | public static void logMessage(String tag, String message) { 32 | for (LoggingListener listener: sListener) { 33 | listener.onLogMessage(tag, message); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /library/build.gradle.kts: -------------------------------------------------------------------------------- 1 | plugins { 2 | id("com.android.library") 3 | id("maven-publish") 4 | } 5 | 6 | group = "org.fossify" 7 | version = "1.0.0" 8 | 9 | android { 10 | compileSdk = 34 11 | namespace = "com.klinker.android.send_message" 12 | 13 | defaultConfig { 14 | minSdk = 26 15 | } 16 | 17 | lint { 18 | abortOnError = false 19 | } 20 | 21 | compileOptions { 22 | sourceCompatibility = JavaVersion.VERSION_17 23 | targetCompatibility = JavaVersion.VERSION_17 24 | } 25 | 26 | @Suppress("DEPRECATION") 27 | useLibrary("org.apache.http.legacy") 28 | 29 | publishing { 30 | singleVariant("release") { 31 | withSourcesJar() 32 | } 33 | } 34 | } 35 | 36 | dependencies { 37 | implementation("com.klinkerapps:logger:1.0.3") 38 | implementation("com.squareup.okhttp:okhttp:2.5.0") 39 | implementation("com.squareup.okhttp:okhttp-urlconnection:2.5.0") 40 | } 41 | 42 | afterEvaluate { 43 | publishing { 44 | publications { 45 | create("release") { 46 | from(components["release"]) 47 | } 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /library/src/main/java/org/w3c/dom/smil/SMILSwitchElement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000 World Wide Web Consortium, 3 | * (Massachusetts Institute of Technology, Institut National de 4 | * Recherche en Informatique et en Automatique, Keio University). All 5 | * Rights Reserved. This program is distributed under the W3C's Software 6 | * Intellectual Property License. This program is distributed in the 7 | * hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8 | * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 9 | * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more 10 | * details. 11 | */ 12 | 13 | package org.w3c.dom.smil; 14 | 15 | import org.w3c.dom.Element; 16 | 17 | /** 18 | * Defines a block of content control. See the switch element definition . 19 | */ 20 | public interface SMILSwitchElement extends SMILElement { 21 | /** 22 | * Returns the slected element at runtime. null if the 23 | * selected element is not yet available. 24 | * @return The selected Element for thisd switch 25 | * element. 26 | */ 27 | public Element getSelectedElement(); 28 | 29 | } 30 | 31 | -------------------------------------------------------------------------------- /library/src/main/java/com/android/mms/dom/smil/ElementTimeContainerImpl.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007 Esmertec AG. 3 | * Copyright (C) 2007 The Android Open Source Project 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.android.mms.dom.smil; 19 | 20 | import org.w3c.dom.smil.ElementTimeContainer; 21 | import org.w3c.dom.smil.SMILElement; 22 | 23 | public abstract class ElementTimeContainerImpl extends ElementTimeImpl implements 24 | ElementTimeContainer { 25 | 26 | /* 27 | * Internal Interface 28 | */ 29 | 30 | ElementTimeContainerImpl(SMILElement element) { 31 | super(element); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /library/src/main/java/com/android/mms/transaction/AbstractRetryScheme.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2008 Esmertec AG. 3 | * Copyright (C) 2008 The Android Open Source Project 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.android.mms.transaction; 19 | 20 | public abstract class AbstractRetryScheme { 21 | public static final int OUTGOING = 1; 22 | public static final int INCOMING = 2; 23 | 24 | protected int mRetriedTimes; 25 | 26 | public AbstractRetryScheme(int retriedTimes) { 27 | mRetriedTimes = retriedTimes; 28 | } 29 | 30 | abstract public int getRetryLimit(); 31 | abstract public long getWaitingInterval(); 32 | } 33 | -------------------------------------------------------------------------------- /library/src/main/java/com/android/mms/service_alt/exception/ApnException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2014 The Android Open Source Project 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.android.mms.service_alt.exception; 18 | 19 | /** 20 | * APN exception 21 | */ 22 | public class ApnException extends Exception { 23 | 24 | public ApnException() { 25 | super(); 26 | } 27 | 28 | public ApnException(String message) { 29 | super(message); 30 | } 31 | 32 | public ApnException(Throwable cause) { 33 | super(cause); 34 | } 35 | 36 | public ApnException(String message, Throwable cause) { 37 | super(message, cause); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc234-mnc10/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | 22 | 26 | 10 27 | 28 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc234-mnc11/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | 22 | 26 | 10 27 | 28 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc234-mnc15/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 20 | 21 | 22 | 26 | 10 27 | 28 | -------------------------------------------------------------------------------- /library/src/main/java/com/android/mms/service_alt/exception/MmsNetworkException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2014 The Android Open Source Project 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.android.mms.service_alt.exception; 18 | 19 | /** 20 | * MMS network exception 21 | */ 22 | public class MmsNetworkException extends Exception { 23 | 24 | public MmsNetworkException() { 25 | super(); 26 | } 27 | 28 | public MmsNetworkException(String message) { 29 | super(message); 30 | } 31 | 32 | public MmsNetworkException(Throwable cause) { 33 | super(cause); 34 | } 35 | 36 | public MmsNetworkException(String message, Throwable cause) { 37 | super(message, cause); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc310-mnc070/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 20 | 21 | 1048576 22 | 23 | 24 | 1944 25 | 26 | 27 | 2592 28 | 29 | 31 | 10 32 | 33 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc310-mnc410/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 20 | 21 | 1048576 22 | 23 | 24 | 1944 25 | 26 | 27 | 2592 28 | 29 | 31 | 10 32 | 33 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc310-mnc560/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 20 | 21 | 1048576 22 | 23 | 24 | 1944 25 | 26 | 27 | 2592 28 | 29 | 31 | 10 32 | 33 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc310-mnc680/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 20 | 21 | 1048576 22 | 23 | 24 | 1944 25 | 26 | 27 | 2592 28 | 29 | 31 | 10 32 | 33 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc310-mnc170/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 20 | 21 | 1048576 22 | 23 | 24 | 1944 25 | 26 | 27 | 2592 28 | 29 | 31 | 10 32 | 33 | -------------------------------------------------------------------------------- /library/src/main/java/com/android/mms/transaction/MessageSender.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Jacob Klinker 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.android.mms.transaction; 18 | 19 | import com.google.android.mms.MmsException; 20 | 21 | public interface MessageSender { 22 | public static final String RECIPIENTS_SEPARATOR = ";"; 23 | 24 | /** 25 | * Send the message through MMS or SMS protocol. 26 | * @param token The token to identify the sending progress. 27 | * 28 | * @return True if the message was sent through MMS or false if it was 29 | * sent through SMS. 30 | * @throws com.google.android.mms.MmsException Error occurred while sending the message. 31 | */ 32 | boolean sendMessage(long token) throws MmsException; 33 | } 34 | -------------------------------------------------------------------------------- /library/src/main/java/org/w3c/dom/views/DocumentView.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000 World Wide Web Consortium, 3 | * (Massachusetts Institute of Technology, Institut National de 4 | * Recherche en Informatique et en Automatique, Keio University). All 5 | * Rights Reserved. This program is distributed under the W3C's Software 6 | * Intellectual Property License. This program is distributed in the 7 | * hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8 | * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 9 | * PURPOSE. 10 | * See W3C License http://www.w3.org/Consortium/Legal/ for more details. 11 | */ 12 | 13 | package org.w3c.dom.views; 14 | 15 | /** 16 | * The DocumentView interface is implemented by 17 | * Document objects in DOM implementations supporting DOM 18 | * Views. It provides an attribute to retrieve the default view of a 19 | * document. 20 | *

See also the Document Object Model (DOM) Level 2 Views Specification. 21 | * @since DOM Level 2 22 | */ 23 | public interface DocumentView { 24 | /** 25 | * The default AbstractView for this Document, 26 | * or null if none available. 27 | */ 28 | public AbstractView getDefaultView(); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc204-mnc04/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc208-mnc01/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 614400 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc208-mnc10/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 614400 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc208-mnc15/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 614400 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc208-mnc26/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 614400 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc214-mnc03/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc214-mnc07/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 512000 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc218-mnc05/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc222-mnc01/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc222-mnc08/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc238-mnc02/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 2097152 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc240-mnc01/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 614400 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc240-mnc04/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 614400 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc240-mnc08/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 614400 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc240-mnc24/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 614400 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc242-mnc01/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 2097152 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc242-mnc02/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 614400 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc262-mnc07/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 614400 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc274-mnc02/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc274-mnc03/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc286-mnc01/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 512000 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc286-mnc03/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 512000 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc294-mnc01/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 102400 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc294-mnc02/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 131072 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc294-mnc03/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 256000 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc302-mnc780/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 614400 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc418-mnc05/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 102400 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc418-mnc20/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 153600 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc418-mnc30/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 153600 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc420-mnc04/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 409600 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc440-mnc10/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 614400 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc450-mnc00/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc505-mnc01/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 2097152 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc604-mnc00/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 102400 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc604-mnc02/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 102400 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc647-mnc10/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 614400 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc302-mnc290/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc310-mnc150/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc310-mnc420/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc310-mnc450/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc310-mnc770/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc310-mnc980/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc311-mnc370/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc334-mnc020/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | -------------------------------------------------------------------------------- /library/src/main/java/android/annotation/SdkConstant.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2008 The Android Open Source Project 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 android.annotation; 18 | 19 | import java.lang.annotation.ElementType; 20 | import java.lang.annotation.Retention; 21 | import java.lang.annotation.RetentionPolicy; 22 | import java.lang.annotation.Target; 23 | 24 | /** 25 | * Indicates a constant field value should be exported to be used in the SDK tools. 26 | * 27 | * @hide 28 | */ 29 | @Target({ElementType.FIELD}) 30 | @Retention(RetentionPolicy.SOURCE) 31 | public @interface SdkConstant { 32 | public static enum SdkConstantType { 33 | ACTIVITY_INTENT_ACTION, BROADCAST_INTENT_ACTION, SERVICE_ACTION, INTENT_CATEGORY, FEATURE; 34 | } 35 | 36 | SdkConstantType value(); 37 | } 38 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | jobs: 7 | release: 8 | name: Create release 9 | runs-on: ubuntu-latest 10 | 11 | permissions: 12 | contents: write 13 | 14 | steps: 15 | - name: Checkout repository 16 | uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 17 | with: 18 | fetch-depth: 0 19 | 20 | - name: Get next version 21 | id: version 22 | uses: ietf-tools/semver-action@000ddb2ebacad350ff2a15382a344dc05ea4c0a4 23 | with: 24 | token: ${{ github.token }} 25 | branch: ${{ github.event.repository.default_branch }} 26 | noNewCommitBehavior: 'warn' 27 | noVersionBumpBehavior: 'warn' 28 | patchList: fix, bugfix, perf, refactor, test, tests, chore 29 | 30 | - name: Create and push tag 31 | if: ${{ steps.version.outputs.nextStrict }} 32 | run: | 33 | set -euo pipefail 34 | git config user.name "fossifybot[bot]" 35 | git config user.email "212866877+fossifybot[bot]@users.noreply.github.com" 36 | new_version="${{ steps.version.outputs.nextStrict }}" 37 | echo "Creating tag: $new_version" 38 | git tag -a "$new_version" -m "$new_version" 39 | git push origin "$new_version" 40 | echo "Created and pushed tag: $new_version" 41 | -------------------------------------------------------------------------------- /library/src/main/java/com/google/android/mms/util_alt/PduCacheEntry.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jacob Klinker 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.google.android.mms.util_alt; 18 | 19 | import com.google.android.mms.pdu_alt.GenericPdu; 20 | 21 | public final class PduCacheEntry { 22 | private final GenericPdu mPdu; 23 | private final int mMessageBox; 24 | private final long mThreadId; 25 | 26 | public PduCacheEntry(GenericPdu pdu, int msgBox, long threadId) { 27 | mPdu = pdu; 28 | mMessageBox = msgBox; 29 | mThreadId = threadId; 30 | } 31 | 32 | public GenericPdu getPdu() { 33 | return mPdu; 34 | } 35 | 36 | public int getMessageBox() { 37 | return mMessageBox; 38 | } 39 | 40 | public long getThreadId() { 41 | return mThreadId; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /library/src/main/java/com/android/mms/transaction/MessageStatusReceiver.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007 Esmertec AG. 3 | * Copyright (C) 2007 The Android Open Source Project 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.android.mms.transaction; 19 | 20 | import android.content.BroadcastReceiver; 21 | import android.content.Context; 22 | import android.content.Intent; 23 | 24 | public class MessageStatusReceiver extends BroadcastReceiver { 25 | public static final String MESSAGE_STATUS_RECEIVED_ACTION = 26 | "com.android.mms.transaction.MessageStatusReceiver.MESSAGE_STATUS_RECEIVED"; 27 | 28 | @Override 29 | public void onReceive(Context context, Intent intent) { 30 | if (MESSAGE_STATUS_RECEIVED_ACTION.equals(intent.getAction())) { 31 | intent.setClass(context, MessageStatusService.class); 32 | context.startService(intent); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc530-mnc05/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 614400 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | 35 | false 36 | 37 | -------------------------------------------------------------------------------- /library/src/main/java/com/android/i18n/phonenumbers/PhoneNumberUtil.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jacob Klinker 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.android.i18n.phonenumbers; 18 | 19 | public class PhoneNumberUtil { 20 | private static PhoneNumberUtil instance; 21 | 22 | public static PhoneNumberUtil getInstance() { 23 | return instance; 24 | } 25 | 26 | public String format(Phonenumber.PhoneNumber parsed, PhoneNumberFormat format) { 27 | return null; 28 | } 29 | 30 | public Phonenumber.PhoneNumber parse(String s, String s2) throws NumberParseException { 31 | return new Phonenumber.PhoneNumber(); 32 | } 33 | 34 | public boolean isValidNumber(Phonenumber.PhoneNumber phoneNumber) { 35 | return true; 36 | } 37 | 38 | public enum PhoneNumberFormat { 39 | E164, 40 | INTERNATIONAL, 41 | NATIONAL, 42 | RFC3966 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /library/src/main/java/com/google/android/mms/InvalidHeaderValueException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007 Esmertec AG. 3 | * Copyright (C) 2007 The Android Open Source Project 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.google.android.mms; 19 | 20 | /** 21 | * Thrown when an invalid header value was set. 22 | */ 23 | public class InvalidHeaderValueException extends MmsException { 24 | private static final long serialVersionUID = -2053384496042052262L; 25 | 26 | /** 27 | * Constructs an InvalidHeaderValueException with no detailed message. 28 | */ 29 | public InvalidHeaderValueException() { 30 | super(); 31 | } 32 | 33 | /** 34 | * Constructs an InvalidHeaderValueException with the specified detailed message. 35 | * 36 | * @param message the detailed message. 37 | */ 38 | public InvalidHeaderValueException(String message) { 39 | super(message); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc310-mnc380/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 22 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | 36 | 10 37 | 38 | -------------------------------------------------------------------------------- /library/src/main/java/org/w3c/dom/smil/ElementTargetAttributes.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000 World Wide Web Consortium, 3 | * (Massachusetts Institute of Technology, Institut National de 4 | * Recherche en Informatique et en Automatique, Keio University). All 5 | * Rights Reserved. This program is distributed under the W3C's Software 6 | * Intellectual Property License. This program is distributed in the 7 | * hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8 | * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 9 | * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more 10 | * details. 11 | */ 12 | 13 | package org.w3c.dom.smil; 14 | 15 | /** 16 | * This interface define the set of animation target extensions. 17 | */ 18 | public interface ElementTargetAttributes { 19 | /** 20 | * The name of the target attribute. 21 | */ 22 | public String getAttributeName(); 23 | public void setAttributeName(String attributeName); 24 | 25 | // attributeTypes 26 | public static final short ATTRIBUTE_TYPE_AUTO = 0; 27 | public static final short ATTRIBUTE_TYPE_CSS = 1; 28 | public static final short ATTRIBUTE_TYPE_XML = 2; 29 | 30 | /** 31 | * A code representing the value of the attributeType attribute, as 32 | * defined above. Default value is ATTRIBUTE_TYPE_CODE . 33 | */ 34 | public short getAttributeType(); 35 | public void setAttributeType(short attributeType); 36 | 37 | } 38 | 39 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc311-mnc180/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | 36 | 10 37 | 38 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc450-mnc02/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | false 35 | 36 | false 37 | 38 | false 39 | 40 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc450-mnc05/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | false 35 | 36 | false 37 | 38 | false 39 | 40 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc450-mnc08/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | false 35 | 36 | false 37 | 38 | false 39 | 40 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc208-mnc20/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 24 | 25 | 26 | 27 | 614400 28 | 29 | 30 | 1944 31 | 32 | 33 | 2592 34 | 35 | 36 | false 37 | 38 | -------------------------------------------------------------------------------- /library/src/main/java/org/w3c/dom/smil/ElementTimeContainer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000 World Wide Web Consortium, 3 | * (Massachusetts Institute of Technology, Institut National de 4 | * Recherche en Informatique et en Automatique, Keio University). All 5 | * Rights Reserved. This program is distributed under the W3C's Software 6 | * Intellectual Property License. This program is distributed in the 7 | * hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8 | * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 9 | * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more 10 | * details. 11 | */ 12 | 13 | package org.w3c.dom.smil; 14 | 15 | import org.w3c.dom.NodeList; 16 | 17 | /** 18 | * This is a placeholder - subject to change. This represents generic 19 | * timelines. 20 | */ 21 | public interface ElementTimeContainer extends ElementTime { 22 | /** 23 | * A NodeList that contains all timed childrens of this node. If there are 24 | * no timed children, the Nodelist is empty. An iterator 25 | * is more appropriate here than a node list but it requires Traversal 26 | * module support. 27 | */ 28 | public NodeList getTimeChildren(); 29 | 30 | /** 31 | * Returns a list of child elements active at the specified invocation. 32 | * @param instant The desired position on the local timeline in 33 | * milliseconds. 34 | * @return List of timed child-elements active at instant. 35 | */ 36 | public NodeList getActiveChildrenAt(float instant); 37 | 38 | } 39 | 40 | -------------------------------------------------------------------------------- /library/src/main/java/org/w3c/dom/events/EventException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000 World Wide Web Consortium, 3 | * (Massachusetts Institute of Technology, Institut National de 4 | * Recherche en Informatique et en Automatique, Keio University). All 5 | * Rights Reserved. This program is distributed under the W3C's Software 6 | * Intellectual Property License. This program is distributed in the 7 | * hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8 | * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 9 | * PURPOSE. 10 | * See W3C License http://www.w3.org/Consortium/Legal/ for more details. 11 | */ 12 | 13 | package org.w3c.dom.events; 14 | 15 | /** 16 | * Event operations may throw an EventException as specified in 17 | * their method descriptions. 18 | *

See also the Document Object Model (DOM) Level 2 Events Specification. 19 | * @since DOM Level 2 20 | */ 21 | public class EventException extends RuntimeException { 22 | public EventException(short code, String message) { 23 | super(message); 24 | this.code = code; 25 | } 26 | public short code; 27 | // EventExceptionCode 28 | /** 29 | * If the Event's type was not specified by initializing the 30 | * event before the method was called. Specification of the Event's type 31 | * as null or an empty string will also trigger this 32 | * exception. 33 | */ 34 | public static final short UNSPECIFIED_EVENT_TYPE_ERR = 0; 35 | 36 | } 37 | -------------------------------------------------------------------------------- /library/src/main/java/com/android/mms/dom/smil/TimeListImpl.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007 Esmertec AG. 3 | * Copyright (C) 2007 The Android Open Source Project 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.android.mms.dom.smil; 19 | 20 | import java.util.ArrayList; 21 | 22 | import org.w3c.dom.smil.Time; 23 | import org.w3c.dom.smil.TimeList; 24 | 25 | public class TimeListImpl implements TimeList { 26 | private final ArrayList

The items in the TimeList are accessible via an integral 20 | * index, starting from 0. 21 | */ 22 | public interface TimeList { 23 | /** 24 | * Returns the index th item in the collection. If 25 | * index is greater than or equal to the number of times in 26 | * the list, this returns null . 27 | * @param index Index into the collection. 28 | * @return The time at the index th position in the 29 | * TimeList , or null if that is not a valid 30 | * index. 31 | */ 32 | public Time item(int index); 33 | 34 | /** 35 | * The number of times in the list. The range of valid child time indices 36 | * is 0 to length-1 inclusive. 37 | */ 38 | public int getLength(); 39 | 40 | } 41 | 42 | -------------------------------------------------------------------------------- /library/src/main/java/org/w3c/dom/smil/SMILElement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000 World Wide Web Consortium, 3 | * (Massachusetts Institute of Technology, Institut National de 4 | * Recherche en Informatique et en Automatique, Keio University). All 5 | * Rights Reserved. This program is distributed under the W3C's Software 6 | * Intellectual Property License. This program is distributed in the 7 | * hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8 | * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 9 | * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more 10 | * details. 11 | */ 12 | 13 | package org.w3c.dom.smil; 14 | 15 | import org.w3c.dom.DOMException; 16 | import org.w3c.dom.Element; 17 | 18 | /** 19 | * The SMILElement interface is the base for all SMIL element 20 | * types. It follows the model of the HTMLElement in the HTML 21 | * DOM, extending the base Element class to denote SMIL-specific 22 | * elements. 23 | *

Note that the SMILElement interface overlaps with the 24 | * HTMLElement interface. In practice, an integrated document 25 | * profile that include HTML and SMIL modules will effectively implement both 26 | * interfaces (see also the DOM documentation discussion of Inheritance vs 27 | * Flattened Views of the API ). // etc. This needs attention 28 | */ 29 | public interface SMILElement extends Element { 30 | /** 31 | * The unique id. 32 | * @exception DOMException 33 | * NO_MODIFICATION_ALLOWED_ERR: Raised if this attribute is readonly. 34 | */ 35 | public String getId(); 36 | public void setId(String id) 37 | throws DOMException; 38 | 39 | } 40 | 41 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc302-mnc320/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 614400 20 | 21 | 22 | 1944 23 | 24 | 25 | 2592 26 | 27 | 29 | 20 30 | 31 | 35 | 6 36 | 37 | 38 | 80 39 | 40 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc302-mnc520/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 18 | 19 | 3072000 20 | 21 | 22 | 1944 23 | 24 | 25 | 2592 26 | 27 | 29 | 20 30 | 31 | 35 | 6 36 | 37 | 38 | 80 39 | 40 | -------------------------------------------------------------------------------- /library/src/main/java/com/android/mms/service_alt/SubscriptionIdChecker.java: -------------------------------------------------------------------------------- 1 | 2 | package com.android.mms.service_alt; 3 | 4 | import android.content.Context; 5 | import android.database.Cursor; 6 | import android.database.sqlite.SQLiteException; 7 | import android.os.Build; 8 | import android.provider.Telephony; 9 | import android.util.Log; 10 | 11 | import com.google.android.mms.util_alt.SqliteWrapper; 12 | 13 | public class SubscriptionIdChecker { 14 | private static final String TAG = "SubscriptionIdChecker"; 15 | 16 | private static SubscriptionIdChecker sInstance; 17 | private boolean mCanUseSubscriptionId = false; 18 | 19 | // I met a device which does not have Telephony.Mms.SUBSCRIPTION_ID event if it's API Level is 22. 20 | private void check(Context context) { 21 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) { 22 | Cursor c = null; 23 | try { 24 | c = SqliteWrapper.query(context, context.getContentResolver(), 25 | Telephony.Mms.CONTENT_URI, 26 | new String[]{Telephony.Mms.SUBSCRIPTION_ID}, null, null, null); 27 | if (c != null) { 28 | mCanUseSubscriptionId = true; 29 | } 30 | } catch (SQLiteException e) { 31 | Log.e(TAG, "SubscriptionIdChecker.check() fail"); 32 | } finally { 33 | if (c != null) { 34 | c.close(); 35 | } 36 | } 37 | } 38 | } 39 | 40 | public static synchronized SubscriptionIdChecker getInstance(Context context) { 41 | if (sInstance == null) { 42 | sInstance = new SubscriptionIdChecker(); 43 | sInstance.check(context); 44 | } 45 | return sInstance; 46 | } 47 | 48 | public boolean canUseSubscriptionId() { 49 | return mCanUseSubscriptionId; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /library/src/main/java/com/google/android/mms/MmsException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007 Esmertec AG. 3 | * Copyright (C) 2007 The Android Open Source Project 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.google.android.mms; 19 | 20 | /** 21 | * A generic exception that is thrown by the Mms client. 22 | */ 23 | public class MmsException extends Exception { 24 | private static final long serialVersionUID = -7323249827281485390L; 25 | 26 | /** 27 | * Creates a new MmsException. 28 | */ 29 | public MmsException() { 30 | super(); 31 | } 32 | 33 | /** 34 | * Creates a new MmsException with the specified detail message. 35 | * 36 | * @param message the detail message. 37 | */ 38 | public MmsException(String message) { 39 | super(message); 40 | } 41 | 42 | /** 43 | * Creates a new MmsException with the specified cause. 44 | * 45 | * @param cause the cause. 46 | */ 47 | public MmsException(Throwable cause) { 48 | super(cause); 49 | } 50 | 51 | /** 52 | * Creates a new MmsException with the specified detail message and cause. 53 | * 54 | * @param message the detail message. 55 | * @param cause the cause. 56 | */ 57 | public MmsException(String message, Throwable cause) { 58 | super(message, cause); 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /library/src/main/java/com/android/mms/layout/LayoutParameters.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2008 Esmertec AG. 3 | * Copyright (C) 2008 The Android Open Source Project 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.android.mms.layout; 19 | 20 | public interface LayoutParameters { 21 | /* Layouts type definition */ 22 | public static final int UNKNOWN = -1; 23 | public static final int HVGA_LANDSCAPE = 10; 24 | public static final int HVGA_PORTRAIT = 11; 25 | 26 | /* Parameters for known layouts */ 27 | public static final int HVGA_LANDSCAPE_WIDTH = 480; 28 | public static final int HVGA_LANDSCAPE_HEIGHT = 320; 29 | public static final int HVGA_PORTRAIT_WIDTH = 320; 30 | public static final int HVGA_PORTRAIT_HEIGHT = 480; 31 | 32 | /** 33 | * Get the width of current layout. 34 | */ 35 | int getWidth(); 36 | /** 37 | * Get the height of current layout. 38 | */ 39 | int getHeight(); 40 | /** 41 | * Get the width of the image region of current layout. 42 | */ 43 | int getImageHeight(); 44 | /** 45 | * Get the height of the text region of current layout. 46 | */ 47 | int getTextHeight(); 48 | /** 49 | * Get the type of current layout. 50 | */ 51 | int getType(); 52 | /** 53 | * Get the type description of current layout. 54 | */ 55 | String getTypeDescription(); 56 | } 57 | -------------------------------------------------------------------------------- /library/src/main/java/com/android/mms/transaction/MmsPushOutboxMessages.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Jacob Klinker 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 | package com.android.mms.transaction; 17 | 18 | import com.android.mms.logs.LogTag; 19 | 20 | import android.content.BroadcastReceiver; 21 | import android.content.Context; 22 | import android.content.Intent; 23 | import com.klinker.android.logger.Log; 24 | 25 | /** 26 | * MmsPushOutboxMessages listens for MMS_SEND_OUTBOX_MSG intent . 27 | * {@link android.intent.action.MMS_SEND_OUTBOX_MSG}, 28 | * and wakes up the mms service when it receives it. 29 | * This will tricker the mms service to send any messages stored 30 | * in the outbox. 31 | */ 32 | public class MmsPushOutboxMessages extends BroadcastReceiver { 33 | private static final String INTENT_MMS_SEND_OUTBOX_MSG = "android.intent.action.MMS_SEND_OUTBOX_MSG"; 34 | private static final String TAG = LogTag.TAG; 35 | 36 | @Override 37 | public void onReceive(Context context, Intent intent) { 38 | if (Log.isLoggable(LogTag.TRANSACTION, Log.VERBOSE)) { 39 | Log.v(TAG, "Received the MMS_SEND_OUTBOX_MSG intent: " + intent); 40 | } 41 | String action = intent.getAction(); 42 | if(action.equalsIgnoreCase(INTENT_MMS_SEND_OUTBOX_MSG)){ 43 | Log.d(TAG,"Now waking up the MMS service"); 44 | context.startService(new Intent(context, TransactionService.class)); 45 | } 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc302-mnc220/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | 36 | 10 37 | 38 | 42 | 5 43 | 44 | 45 | 80 46 | 47 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc302-mnc221/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | 36 | 10 37 | 38 | 42 | 5 43 | 44 | 45 | 80 46 | 47 | -------------------------------------------------------------------------------- /library/src/main/java/org/w3c/dom/smil/ElementLayout.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000 World Wide Web Consortium, 3 | * (Massachusetts Institute of Technology, Institut National de 4 | * Recherche en Informatique et en Automatique, Keio University). All 5 | * Rights Reserved. This program is distributed under the W3C's Software 6 | * Intellectual Property License. This program is distributed in the 7 | * hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8 | * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 9 | * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more 10 | * details. 11 | */ 12 | 13 | package org.w3c.dom.smil; 14 | 15 | import org.w3c.dom.DOMException; 16 | 17 | /** 18 | * This interface is used by SMIL elements root-layout, top-layout and region. 19 | * 20 | */ 21 | public interface ElementLayout { 22 | /** 23 | * @exception DOMException 24 | * NO_MODIFICATION_ALLOWED_ERR: Raised if this attribute is readonly. 25 | */ 26 | public String getTitle(); 27 | public void setTitle(String title) 28 | throws DOMException; 29 | 30 | /** 31 | * @exception DOMException 32 | * NO_MODIFICATION_ALLOWED_ERR: Raised if this attribute is readonly. 33 | */ 34 | public String getBackgroundColor(); 35 | public void setBackgroundColor(String backgroundColor) 36 | throws DOMException; 37 | 38 | /** 39 | * @exception DOMException 40 | * NO_MODIFICATION_ALLOWED_ERR: Raised if this attribute is readonly. 41 | */ 42 | public int getHeight(); 43 | public void setHeight(int height) 44 | throws DOMException; 45 | 46 | /** 47 | * @exception DOMException 48 | * NO_MODIFICATION_ALLOWED_ERR: Raised if this attribute is readonly. 49 | */ 50 | public int getWidth(); 51 | public void setWidth(int width) 52 | throws DOMException; 53 | 54 | } 55 | 56 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc302-mnc270/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | 36 | 20 37 | 38 | 42 | 6 43 | 44 | 45 | 80 46 | 47 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc302-mnc370/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | 36 | 20 37 | 38 | 42 | 6 43 | 44 | 45 | 80 46 | 47 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc302-mnc490/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | 36 | 20 37 | 38 | 42 | 6 43 | 44 | 45 | 80 46 | 47 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc302-mnc500/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 3072000 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | 36 | 20 37 | 38 | 42 | 6 43 | 44 | 45 | 80 46 | 47 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc302-mnc510/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 3072000 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | 36 | 20 37 | 38 | 42 | 6 43 | 44 | 45 | 80 46 | 47 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc302-mnc660/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | 36 | 20 37 | 38 | 42 | 6 43 | 44 | 45 | 80 46 | 47 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc302-mnc720/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 1048576 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | 36 | 20 37 | 38 | 42 | 6 43 | 44 | 45 | 80 46 | 47 | -------------------------------------------------------------------------------- /library/src/main/java/com/android/mms/util/SendingProgressTokenManager.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Jacob Klinker 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.android.mms.util; 18 | 19 | import java.util.HashMap; 20 | 21 | import com.android.mms.logs.LogTag; 22 | import com.klinker.android.logger.Log; 23 | 24 | public class SendingProgressTokenManager { 25 | private static final String TAG = LogTag.TAG; 26 | private static final boolean DEBUG = false; 27 | private static final boolean LOCAL_LOGV = false; 28 | private static final HashMap TOKEN_POOL; 29 | 30 | public static final long NO_TOKEN = -1L; 31 | 32 | static { 33 | TOKEN_POOL = new HashMap(); 34 | } 35 | 36 | synchronized public static long get(Object key) { 37 | Long token = TOKEN_POOL.get(key); 38 | if (LOCAL_LOGV) { 39 | Log.v(TAG, "TokenManager.get(" + key + ") -> " + token); 40 | } 41 | return token != null ? token : NO_TOKEN; 42 | } 43 | 44 | synchronized public static void put(Object key, long token) { 45 | if (LOCAL_LOGV) { 46 | Log.v(TAG, "TokenManager.put(" + key + ", " + token + ")"); 47 | } 48 | TOKEN_POOL.put(key, token); 49 | } 50 | 51 | synchronized public static void remove(Object key) { 52 | if (LOCAL_LOGV) { 53 | Log.v(TAG, "TokenManager.remove(" + key + ")"); 54 | } 55 | TOKEN_POOL.remove(key); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /library/src/main/java/com/android/mms/dom/smil/SmilRegionMediaElementImpl.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007 Esmertec AG. 3 | * Copyright (C) 2007 The Android Open Source Project 4 | * 5 | * Licensed under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. 7 | * You may obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | * See the License for the specific language governing permissions and 15 | * limitations under the License. 16 | */ 17 | 18 | package com.android.mms.dom.smil; 19 | 20 | import org.w3c.dom.NodeList; 21 | import org.w3c.dom.smil.SMILDocument; 22 | import org.w3c.dom.smil.SMILRegionElement; 23 | import org.w3c.dom.smil.SMILRegionMediaElement; 24 | 25 | public class SmilRegionMediaElementImpl extends SmilMediaElementImpl implements 26 | SMILRegionMediaElement { 27 | private SMILRegionElement mRegion; 28 | 29 | SmilRegionMediaElementImpl(SmilDocumentImpl owner, String tagName) { 30 | super(owner, tagName); 31 | } 32 | 33 | public SMILRegionElement getRegion() { 34 | if (mRegion == null) { 35 | SMILDocument doc = (SMILDocument)this.getOwnerDocument(); 36 | NodeList regions = doc.getLayout().getElementsByTagName("region"); 37 | SMILRegionElement region = null; 38 | for (int i = 0; i < regions.getLength(); i++) { 39 | region = (SMILRegionElement)regions.item(i); 40 | if (region.getId().equals(this.getAttribute("region"))) { 41 | mRegion = region; 42 | } 43 | } 44 | } 45 | return mRegion; 46 | } 47 | 48 | public void setRegion(SMILRegionElement region) { 49 | this.setAttribute("region", region.getId()); 50 | mRegion = region; 51 | } 52 | 53 | } 54 | -------------------------------------------------------------------------------- /library/src/main/java/com/android/mms/transaction/DefaultRetryScheme.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014 Jacob Klinker 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.android.mms.transaction; 18 | 19 | import com.android.mms.logs.LogTag; 20 | 21 | import android.content.Context; 22 | import android.util.Config; 23 | import com.klinker.android.logger.Log; 24 | 25 | /** 26 | * Default retry scheme, based on specs. 27 | */ 28 | public class DefaultRetryScheme extends AbstractRetryScheme { 29 | private static final String TAG = LogTag.TAG; 30 | private static final boolean DEBUG = false; 31 | private static final boolean LOCAL_LOGV = DEBUG ? Config.LOGD : Config.LOGV; 32 | 33 | private static final int[] sDefaultRetryScheme = { 34 | 0, 1 * 60 * 1000, 5 * 60 * 1000, 10 * 60 * 1000, 30 * 60 * 1000}; 35 | 36 | public DefaultRetryScheme(Context context, int retriedTimes) { 37 | super(retriedTimes); 38 | 39 | mRetriedTimes = mRetriedTimes < 0 ? 0 : mRetriedTimes; 40 | mRetriedTimes = mRetriedTimes >= sDefaultRetryScheme.length 41 | ? sDefaultRetryScheme.length - 1 : mRetriedTimes; 42 | 43 | // TODO Get retry scheme from preference. 44 | } 45 | 46 | @Override 47 | public int getRetryLimit() { 48 | return sDefaultRetryScheme.length; 49 | } 50 | 51 | @Override 52 | public long getWaitingInterval() { 53 | if (LOCAL_LOGV) { 54 | Log.v(TAG, "Next int: " + sDefaultRetryScheme[mRetriedTimes]); 55 | } 56 | return sDefaultRetryScheme[mRetriedTimes]; 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /library/src/main/java/com/android/internal/annotations/VisibleForTesting.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 The Android Open Source Project 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.android.internal.annotations; 18 | 19 | import java.lang.annotation.Retention; 20 | import java.lang.annotation.RetentionPolicy; 21 | 22 | /** 23 | * Denotes that the class, method or field has its visibility relaxed so 24 | * that unit tests can access it. 25 | *

26 | * The visibility argument can be used to specific what the original 27 | * visibility should have been if it had not been made public or package-private for testing. 28 | * The default is to consider the element private. 29 | */ 30 | @Retention(RetentionPolicy.SOURCE) 31 | public @interface VisibleForTesting { 32 | /** 33 | * Intended visibility if the element had not been made public or package-private for 34 | * testing. 35 | */ 36 | enum Visibility { 37 | /** 38 | * The element should be considered protected. 39 | */ 40 | PROTECTED, 41 | /** 42 | * The element should be considered package-private. 43 | */ 44 | PACKAGE, 45 | /** 46 | * The element should be considered private. 47 | */ 48 | PRIVATE 49 | } 50 | 51 | /** 52 | * Intended visibility if the element had not been made public or package-private for testing. 53 | * If not specified, one should assume the element originally intended to be private. 54 | */ 55 | Visibility visibility() default Visibility.PRIVATE; 56 | } 57 | -------------------------------------------------------------------------------- /library/src/main/java/org/w3c/dom/smil/SMILDocument.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000 World Wide Web Consortium, 3 | * (Massachusetts Institute of Technology, Institut National de 4 | * Recherche en Informatique et en Automatique, Keio University). All 5 | * Rights Reserved. This program is distributed under the W3C's Software 6 | * Intellectual Property License. This program is distributed in the 7 | * hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8 | * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 9 | * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more 10 | * details. 11 | * 12 | * Difference to the original copy of this file: 13 | * 1) ADD public SMILElement getHead(); 14 | * 2) ADD public SMILElement getBody(); 15 | * 3) ADD public SMILLayoutElement getLayout(); 16 | */ 17 | 18 | package org.w3c.dom.smil; 19 | 20 | import org.w3c.dom.Document; 21 | 22 | /** 23 | * A SMIL document is the root of the SMIL Hierarchy and holds the entire 24 | * content. Beside providing access to the hierarchy, it also provides some 25 | * convenience methods for accessing certain sets of information from the 26 | * document. Cover document timing, document locking?, linking modality and 27 | * any other document level issues. Are there issues with nested SMIL files? 28 | * Is it worth talking about different document scenarios, corresponding to 29 | * differing profiles? E.g. Standalone SMIL, HTML integration, etc. 30 | */ 31 | public interface SMILDocument extends Document, ElementSequentialTimeContainer { 32 | 33 | /** 34 | * Returns the element that contains the layout node of this document, 35 | * i.e. the HEAD element. 36 | */ 37 | public SMILElement getHead(); 38 | 39 | /** 40 | * Returns the element that contains the par's of the document, i.e. the 41 | * BODY element. 42 | */ 43 | public SMILElement getBody(); 44 | 45 | /** 46 | * Returns the element that contains the layout information of the presentation, 47 | * i.e. the LAYOUT element. 48 | */ 49 | public SMILLayoutElement getLayout(); 50 | } 51 | 52 | -------------------------------------------------------------------------------- /library/src/main/java/org/w3c/dom/events/EventListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000 World Wide Web Consortium, 3 | * (Massachusetts Institute of Technology, Institut National de 4 | * Recherche en Informatique et en Automatique, Keio University). All 5 | * Rights Reserved. This program is distributed under the W3C's Software 6 | * Intellectual Property License. This program is distributed in the 7 | * hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8 | * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 9 | * PURPOSE. 10 | * See W3C License http://www.w3.org/Consortium/Legal/ for more details. 11 | */ 12 | 13 | package org.w3c.dom.events; 14 | 15 | /** 16 | * The EventListener interface is the primary method for 17 | * handling events. Users implement the EventListener interface 18 | * and register their listener on an EventTarget using the 19 | * AddEventListener method. The users should also remove their 20 | * EventListener from its EventTarget after they 21 | * have completed using the listener. 22 | *

When a Node is copied using the cloneNode 23 | * method the EventListeners attached to the source 24 | * Node are not attached to the copied Node. If 25 | * the user wishes the same EventListeners to be added to the 26 | * newly created copy the user must add them manually. 27 | *

See also the Document Object Model (DOM) Level 2 Events Specification. 28 | * @since DOM Level 2 29 | */ 30 | public interface EventListener { 31 | /** 32 | * This method is called whenever an event occurs of the type for which 33 | * the EventListener interface was registered. 34 | * @param evt The Event contains contextual information 35 | * about the event. It also contains the stopPropagation 36 | * and preventDefault methods which are used in 37 | * determining the event's flow and default action. 38 | */ 39 | public void handleEvent(Event evt); 40 | 41 | } 42 | -------------------------------------------------------------------------------- /library/src/main/java/org/w3c/dom/smil/TimeEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000 World Wide Web Consortium, 3 | * (Massachusetts Institute of Technology, Institut National de 4 | * Recherche en Informatique et en Automatique, Keio University). All 5 | * Rights Reserved. This program is distributed under the W3C's Software 6 | * Intellectual Property License. This program is distributed in the 7 | * hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8 | * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 9 | * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more 10 | * details. 11 | */ 12 | 13 | package org.w3c.dom.smil; 14 | 15 | import org.w3c.dom.events.Event; 16 | import org.w3c.dom.views.AbstractView; 17 | 18 | /** 19 | * The TimeEvent interface provides specific contextual 20 | * information associated with Time events. 21 | */ 22 | public interface TimeEvent extends Event { 23 | /** 24 | * The view attribute identifies the 25 | * AbstractView from which the event was generated. 26 | */ 27 | public AbstractView getView(); 28 | 29 | /** 30 | * Specifies some detail information about the Event , 31 | * depending on the type of event. 32 | */ 33 | public int getDetail(); 34 | 35 | /** 36 | * The initTimeEvent method is used to initialize the value 37 | * of a TimeEvent created through the 38 | * DocumentEvent interface. This method may only be called 39 | * before the TimeEvent has been dispatched via the 40 | * dispatchEvent method, though it may be called multiple 41 | * times during that phase if necessary. If called multiple times, the 42 | * final invocation takes precedence. 43 | * @param typeArg Specifies the event type. 44 | * @param viewArg Specifies the Event 's 45 | * AbstractView . 46 | * @param detailArg Specifies the Event 's detail. 47 | */ 48 | public void initTimeEvent(String typeArg, 49 | AbstractView viewArg, 50 | int detailArg); 51 | 52 | } 53 | 54 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc302-mnc610/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 17 | 23 | 24 | 25 | 26 | 614400 27 | 28 | 29 | 1944 30 | 31 | 32 | 2592 33 | 34 | 36 | 20 37 | 38 | 42 | 8 43 | 44 | 45 | 80 46 | 47 | 48 | 6245 49 | 50 | 51 | false 52 | 53 | -------------------------------------------------------------------------------- /library/src/main/java/com/klinker/android/send_message/MmsSentReceiver.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jacob Klinker 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.klinker.android.send_message; 18 | 19 | import android.content.ContentValues; 20 | import android.content.Context; 21 | import android.content.Intent; 22 | import android.net.Uri; 23 | import android.provider.Telephony; 24 | 25 | import com.google.android.mms.util_alt.SqliteWrapper; 26 | import com.klinker.android.logger.Log; 27 | 28 | import java.io.File; 29 | 30 | public class MmsSentReceiver extends StatusUpdatedReceiver { 31 | 32 | private static final String TAG = "MmsSentReceiver"; 33 | 34 | public static final String MMS_SENT = "com.klinker.android.messaging.MMS_SENT"; 35 | public static final String EXTRA_CONTENT_URI = "content_uri"; 36 | public static final String EXTRA_FILE_PATH = "file_path"; 37 | 38 | @Override 39 | public void updateInInternalDatabase(Context context, Intent intent, int resultCode) { 40 | Log.v(TAG, "MMS has finished sending, marking it as so, in the database"); 41 | 42 | Uri uri = Uri.parse(intent.getStringExtra(EXTRA_CONTENT_URI)); 43 | Log.v(TAG, uri.toString()); 44 | 45 | ContentValues values = new ContentValues(1); 46 | values.put(Telephony.Mms.MESSAGE_BOX, Telephony.Mms.MESSAGE_BOX_SENT); 47 | SqliteWrapper.update(context, context.getContentResolver(), uri, values, 48 | null, null); 49 | 50 | String filePath = intent.getStringExtra(EXTRA_FILE_PATH); 51 | Log.v(TAG, filePath); 52 | new File(filePath).delete(); 53 | } 54 | 55 | @Override 56 | public void onMessageStatusUpdated(Context context, Intent intent, int resultCode) { 57 | 58 | } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /library/src/main/java/org/w3c/dom/smil/SMILRegionElement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2000 World Wide Web Consortium, 3 | * (Massachusetts Institute of Technology, Institut National de 4 | * Recherche en Informatique et en Automatique, Keio University). All 5 | * Rights Reserved. This program is distributed under the W3C's Software 6 | * Intellectual Property License. This program is distributed in the 7 | * hope that it will be useful, but WITHOUT ANY WARRANTY; without even 8 | * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 9 | * PURPOSE. See W3C License http://www.w3.org/Consortium/Legal/ for more 10 | * details. 11 | * 12 | * Difference to the original copy of this file: 13 | * 1) ADD public int getLeft(); 14 | * 2) ADD public void setLeft(int top) throws DOMException; 15 | * 3) MODIFY public String getTop() to public int getTop(); 16 | * 4) MODIFY public void setTop(String) to public void setTop(int); 17 | */ 18 | 19 | package org.w3c.dom.smil; 20 | 21 | import org.w3c.dom.DOMException; 22 | 23 | /** 24 | * Controls the position, size and scaling of media object elements. See the 25 | * region element definition . 26 | */ 27 | public interface SMILRegionElement extends SMILElement, ElementLayout { 28 | /** 29 | * @exception DOMException 30 | * NO_MODIFICATION_ALLOWED_ERR: Raised if this attribute is readonly. 31 | */ 32 | public String getFit(); 33 | public void setFit(String fit) 34 | throws DOMException; 35 | 36 | /** 37 | * @exception DOMException 38 | * NO_MODIFICATION_ALLOWED_ERR: Raised if this attribute is readonly. 39 | */ 40 | public int getLeft(); 41 | public void setLeft(int top) 42 | throws DOMException; 43 | 44 | /** 45 | * @exception DOMException 46 | * NO_MODIFICATION_ALLOWED_ERR: Raised if this attribute is readonly. 47 | */ 48 | public int getTop(); 49 | public void setTop(int top) 50 | throws DOMException; 51 | 52 | /** 53 | * @exception DOMException 54 | * NO_MODIFICATION_ALLOWED_ERR: Raised if this attribute is readonly. 55 | */ 56 | public int getZIndex(); 57 | public void setZIndex(int zIndex) 58 | throws DOMException; 59 | 60 | } 61 | 62 | -------------------------------------------------------------------------------- /library/src/main/java/com/android/internal/util/Objects.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007 The Android Open Source Project 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.android.internal.util; 18 | 19 | import java.util.Arrays; 20 | 21 | /** 22 | * Object utility methods. 23 | */ 24 | public class Objects { 25 | 26 | /** 27 | * Determines whether two possibly-null objects are equal. Returns: 28 | *

29 | *

35 | *

36 | *

This assumes that any non-null objects passed to this function conform 37 | * to the {@code equals()} contract. 38 | */ 39 | public static boolean equal(Object a, Object b) { 40 | return a == b || (a != null && a.equals(b)); 41 | } 42 | 43 | /** 44 | * Generates a hash code for multiple values. The hash code is generated by 45 | * calling {@link Arrays#hashCode(Object[])}. 46 | *

47 | *

This is useful for implementing {@link Object#hashCode()}. For example, 48 | * in an object that has three properties, {@code x}, {@code y}, and 49 | * {@code z}, one could write: 50 | *

51 |      * public int hashCode() {
52 |      *   return Objects.hashCode(getX(), getY(), getZ());
53 |      * }
54 | * 55 | * Warning: When a single object is supplied, the returned hash code 56 | * does not equal the hash code of that object. 57 | */ 58 | public static int hashCode(Object... objects) { 59 | return Arrays.hashCode(objects); 60 | } 61 | 62 | } 63 | -------------------------------------------------------------------------------- /library/src/main/res/xml-mcc440-mnc20/mms_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 11 | 12 | 13 | 14 | true 15 | 16 | 17 | 307200 18 | 19 | 20 | 1944 21 | 22 | 23 | 2592 24 | 25 | 27 | 10000 28 | 29 | 31 | 1000 32 | 33 | 35 | 10 36 | 37 | 39 | 5000 40 | 41 | 43 | -1 44 | 45 | 48 | true 49 | 50 | 52 | -1 53 | 54 | 55 | false 56 | 57 | --------------------------------------------------------------------------------