diff --git a/build.gradle b/build.gradle index b6a5a5846f8..4ae446335f1 100644 --- a/build.gradle +++ b/build.gradle @@ -33,7 +33,8 @@ allprojects { } buildDir = "${externalBuildDir}/${project.name}" } - group = 'androidx.media3' + group = 'io.bidmachine.media3' + apply from: rootProject.file('renamePackage.gradle') } apply from: 'javadoc_combined.gradle' diff --git a/constants.gradle b/constants.gradle index 0665c6e8053..583bbd64d2f 100644 --- a/constants.gradle +++ b/constants.gradle @@ -12,8 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. project.ext { - releaseVersion = '1.1.0' - releaseVersionCode = 1_001_000_3_00 + releaseVersion = '1.1.1' + releaseVersionCode = 1_001_000_3_01 minSdkVersion = 16 appTargetSdkVersion = 33 // API version before restricting local file access. diff --git a/libraries/session/build.gradle b/libraries/session/build.gradle index 5cdcf67f559..2ef6c831c17 100644 --- a/libraries/session/build.gradle +++ b/libraries/session/build.gradle @@ -13,9 +13,6 @@ // limitations under the License. apply from: "$gradle.ext.androidxMediaSettingsDir/common_library_config.gradle" -// TODO(b/178560255): Remove the "group" override after the "group" in build.gradle changed -group 'androidx.media3' - android { buildTypes { debug { diff --git a/libraries/test_session_current/build.gradle b/libraries/test_session_current/build.gradle index f3fd3ef1ec6..1ac47789057 100644 --- a/libraries/test_session_current/build.gradle +++ b/libraries/test_session_current/build.gradle @@ -14,9 +14,6 @@ apply from: "$gradle.ext.androidxMediaSettingsDir/constants.gradle" apply plugin: 'com.android.application' -// TODO(b/178560255): Remove the "group" override after the "group" in build.gradle changed -group 'androidx.media3' - android { compileSdkVersion project.ext.compileSdkVersion diff --git a/publish.gradle b/publish.gradle index 45b3f481b4f..4c5644e4ac2 100644 --- a/publish.gradle +++ b/publish.gradle @@ -16,71 +16,32 @@ apply plugin: 'maven-publish' apply from: "$gradle.ext.androidxMediaSettingsDir/missing_aar_type_workaround.gradle" afterEvaluate { - if (gradle.ext.has('rootProjectIsAndroidXMedia3') && gradle.ext.rootProjectIsAndroidXMedia3) { - publishing { - repositories { - maven { - url = findProperty('mavenRepo') ?: "${buildDir}/repo" - } - } - publications { - release(MavenPublication) { - from components.release - groupId = 'androidx.media3' - artifactId = findProperty('releaseArtifactId') ?: '' - version = findProperty('releaseVersion') ?: '' - configurations.create("sourcesElement") { variant -> - variant.visible = false - variant.canBeResolved = false - variant.attributes.attribute( - Usage.USAGE_ATTRIBUTE, - project.objects.named(Usage, Usage.JAVA_RUNTIME)) - variant.attributes.attribute( - Category.CATEGORY_ATTRIBUTE, - project.objects.named(Category, Category.DOCUMENTATION)) - variant.attributes.attribute( - Bundling.BUNDLING_ATTRIBUTE, - project.objects.named(Bundling, Bundling.EXTERNAL)) - variant.attributes.attribute( - DocsType.DOCS_TYPE_ATTRIBUTE, - project.objects.named(DocsType, DocsType.SOURCES)) - variant.outgoing.artifact(androidSourcesJar) - components.release.addVariantsFromConfiguration(variant) {} - } - pom { - name = - findProperty('releaseName') - ?: '' - description = - findProperty('releaseDescription') - ?: findProperty('releaseName') - ?: '' - licenses { - license { - name = 'The Apache Software License, Version 2.0' - url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' - distribution = 'repo' - } - } - developers { - developer { - name = 'The Android Open Source Project' - } - } - scm { - connection = 'scm:git:https://github.com/androidx/media.git' - url = 'https://github.com/androidx/media' - } - withXml { - addMissingAarTypeToXml(it) - } + publishing { + repositories { + def repo = findProperty("repo").toString() + def uname = findProperty("uname").toString() + def upassword = findProperty("upassword").toString() + maven { + name = "BidMachine" + if (repo != null && !repo.isEmpty()) { + url = uri("https://artifactory.bidmachine.io/artifactory/$repo") + credentials { + username = uname + password = upassword } } } } + publications { + "${project.name}"(MavenPublication) { + version = findProperty('releaseVersion') ?: '' + artifactId = findProperty('releaseArtifactId') ?: '' + from components.release + } + } } } -tasks.withType(PublishToMavenRepository) { it.dependsOn lint, test } +//tasks.withType(PublishToMavenRepository) { it.dependsOn lint, test } task androidSourcesJar(type: Jar) { archiveClassifier.set('sources') diff --git a/renamePackage.gradle b/renamePackage.gradle new file mode 100644 index 00000000000..91d2fb5c725 --- /dev/null +++ b/renamePackage.gradle @@ -0,0 +1,200 @@ +def oldPackagePath = "androidx/media3" +def newPackagePath = "io/bidmachine/media3" +def oldPackageName = "androidx.media3" +def newPackageName = "io.bidmachine.media3" +def resPrefix = "bm_" + +// Создаем новую задачу для переименования пакета исходных файлов +task renamePackageJava(type: Copy) { + def oldJavaPackagePath = "${projectDir}/src/main/java/${oldPackagePath}".toString() + def newJavaPackagePath = "${projectDir}/src/main/java/${newPackagePath}".toString() + + // Устанавливаем путь к исходным файлам с текущим пакетом + from(oldJavaPackagePath) + // Устанавливаем путь к исходным файлам с новым пакетом + into(newJavaPackagePath) + // Переименовываем файлы, меняя пакет + eachFile { details -> + def filePath = details.path + println("Renaming file: ${filePath} from package: ${oldJavaPackagePath}") + details.path = filePath.replace(oldPackagePath, newPackagePath) + + // Меняем пакет внутри Java файлов + if (details.file.isFile() && (details.file.name.endsWith(".java") || details.file.name.endsWith(".kt"))) { + details.file.text = details.file.text.replace(oldPackageName, newPackageName) + } + } + + // Обновляем пакет в манифесте + doLast { + def manifestFile = file("${projectDir}/src/main/AndroidManifest.xml") + String manifestContent = manifestFile.text + manifestContent = manifestContent.replace(oldPackageName, newPackageName) + manifestFile.text = manifestContent + println("Updated package in AndroidManifest.xml: ${oldPackagePath} to ${newPackagePath}") + } + + // Обновляем пакет в XML файлах + doLast { + fileTree(dir: "${projectDir}/src/main/res/layout", include: '**/*.xml').each { xmlFile -> + if (!xmlFile.name.startsWith(resPrefix)) { + if (xmlFile.text.contains(oldPackageName)) { + def xmlContent = xmlFile.text + xmlContent = xmlContent.replace(oldPackageName, newPackageName) + xmlFile.text = xmlContent + println("Updated package in ${xmlFile}") + } + + def resFileName = xmlFile.name.split("\\.")[0] + def newResFileName = "$resPrefix$resFileName" + xmlFile.renameTo(new File(xmlFile.parentFile, "${newResFileName}.xml")) + + fileTree(dir: newJavaPackagePath, includes: ['**/*.java', '**/*.kt']).each { classFile -> + classFile.text = classFile.text.replace("R.layout.$resFileName", "R.layout.$newResFileName") + } + } + } + } + + // Удаляем старые файлы из старого пакета + doLast { + fileTree(dir: oldJavaPackagePath).visit { FileVisitDetails details -> + details.file.delete() + } + } +} + +// Создаем новую задачу для переименования пакета исходных файлов +task renamePackageAidl(type: Copy) { + def oldAidlPackagePath = "${projectDir}/src/main/aidl/${oldPackagePath}".toString() + def newAidlPackagePath = "${projectDir}/src/main/aidl/${newPackagePath}".toString() + + // Устанавливаем путь к исходным файлам с текущим пакетом + from(oldAidlPackagePath) + // Устанавливаем путь к исходным файлам с новым пакетом + into(newAidlPackagePath) + // Обработка файлов aidl + eachFile { details -> + def filePath = details.path + println("Renaming file: ${filePath}\n from package: ${oldAidlPackagePath}\n to package ${newAidlPackagePath}") + details.path = filePath.replace(oldPackagePath, newPackagePath) + + // Меняем пакет внутри Aidl файлов + if (details.file.isFile() && details.file.name.endsWith(".aidl")) { + details.file.text = details.file.text.replace(oldPackageName, newPackageName) + } + } + + // Обновляем пакет в манифесте + doLast { + def manifestFile = file("${projectDir}/src/main/AndroidManifest.xml") + String manifestContent = manifestFile.text + manifestContent = manifestContent.replace(oldPackageName, newPackageName) + manifestFile.text = manifestContent + println("Updated package in AndroidManifest.xml: ${oldPackagePath} to ${newPackagePath}") + } + + // Обновляем пакет в других файлах проекта (при необходимости) + // Например, strings.xml, файлы ресурсов и т.д. + // Можете добавить сюда дополнительные задачи для изменения пакета в других файлах + + // Удаляем старые файлы из старого пакета + doLast { + fileTree(dir: oldAidlPackagePath).visit { FileVisitDetails details -> + details.file.delete() + } + } +} + +// Создаем новую задачу для переименования пакета исходных файлов +task renamePackageTest(type: Copy) { + def oldTestJavaPackagePath = "${projectDir}/src/test/java/${oldPackagePath}".toString() + def newTestJavaPackagePath = "${projectDir}/src/test/java/${newPackagePath}".toString() + + // Устанавливаем путь к исходным файлам с текущим пакетом + from(oldTestJavaPackagePath) + // Устанавливаем путь к исходным файлам с новым пакетом + into(newTestJavaPackagePath) + // Переименовываем файлы, меняя пакет + eachFile { details -> + def filePath = details.path + println("Renaming file: ${filePath} from package: ${oldTestJavaPackagePath}") + details.path = filePath.replace(oldPackagePath, newPackagePath) + + // Меняем пакет внутри Java файлов + if (details.file.isFile() && (details.file.name.endsWith(".java") || details.file.name.endsWith(".kt"))) { + details.file.text = details.file.text.replace(oldPackageName, newPackageName) + } + } + + // Обновляем пакет в других файлах проекта (при необходимости) + // Например, strings.xml, файлы ресурсов и т.д. + // Можете добавить сюда дополнительные задачи для изменения пакета в других файлах + + // Удаляем старые файлы из старого пакета + doLast { + fileTree(dir: oldTestJavaPackagePath).visit { FileVisitDetails details -> + details.file.delete() + } + } +} + +// Создаем новую задачу для переименования пакета исходных файлов +task renamePackageAndroidTest(type: Copy) { + def oldAndroidTestJavaPackagePath = "${projectDir}/src/androidTest/java/${oldPackagePath}".toString() + def newAndroidTestJavaPackagePath = "${projectDir}/src/androidTest/java/${newPackagePath}".toString() + + // Устанавливаем путь к исходным файлам с текущим пакетом + from(oldAndroidTestJavaPackagePath) + // Устанавливаем путь к исходным файлам с новым пакетом + into(newAndroidTestJavaPackagePath) + // Переименовываем файлы, меняя пакет + eachFile { details -> + def filePath = details.path + println("Renaming file: ${filePath} from package: ${oldAndroidTestJavaPackagePath}") + details.path = filePath.replace(oldPackagePath, newPackagePath) + + // Меняем пакет внутри Java файлов + if (details.file.isFile() && (details.file.name.endsWith(".java") || details.file.name.endsWith(".kt"))) { + details.file.text = details.file.text.replace(oldPackageName, newPackageName) + } + } + + // Обновляем пакет в манифесте + doLast { + def manifestFile = file("${projectDir}/src/androidTest/AndroidManifest.xml") + String manifestContent = manifestFile.text + manifestContent = manifestContent.replace(oldPackageName, newPackageName) + manifestFile.text = manifestContent + println("Updated package in AndroidManifest.xml: ${oldPackagePath} to ${newPackagePath}") + } + + // Обновляем пакет в других файлах проекта (при необходимости) + // Например, strings.xml, файлы ресурсов и т.д. + // Можете добавить сюда дополнительные задачи для изменения пакета в других файлах + + // Удаляем старые файлы из старого пакета + doLast { + fileTree(dir: oldAndroidTestJavaPackagePath).visit { FileVisitDetails details -> + details.file.delete() + } + } +} + +// Создаем новую таску для запуска всех тасков переименования пакета +task renameAllPackages { + dependsOn renamePackageJava, renamePackageAidl, renamePackageTest, renamePackageAndroidTest +} + +afterEvaluate { + if (plugins.hasPlugin('com.android.library')) { + android.libraryVariants.all { variant -> + variant.javaCompile.dependsOn(renameAllPackages) + } + } + if (plugins.hasPlugin('com.android.application')) { + android.applicationVariants.all { variant -> + variant.javaCompile.dependsOn(renameAllPackages) + } + } +} \ No newline at end of file