Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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'
4 changes: 2 additions & 2 deletions constants.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
3 changes: 0 additions & 3 deletions libraries/session/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
3 changes: 0 additions & 3 deletions libraries/test_session_current/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
79 changes: 20 additions & 59 deletions publish.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand Down
200 changes: 200 additions & 0 deletions renamePackage.gradle
Original file line number Diff line number Diff line change
@@ -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)
}
}
}