apply plugin: 'com.android.application' apply plugin: "androidx.navigation.safeargs" android { compileSdkVersion 31 defaultConfig { minSdkVersion 21 targetSdkVersion 31 versionCode 45 versionName "1.15.0" multiDexEnabled true testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } dexOptions { javaMaxHeapSize "4g" } flavorDimensions "default" buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } buildFeatures { viewBinding true } lintOptions { disable 'MissingTranslation' checkReleaseBuilds false abortOnError false } //boolean full_instances if set to false means TubeAcad productFlavors { fdroid_acad { applicationId "app.fedilab.fedilabtube" resValue "string", "app_name", "TubeAcad" resValue "string", "app_id", "app.fedilab.fedilabtube" buildConfigField "String", "version", "\"fdroid_acad\"" buildConfigField "boolean", "full_instances", "false" buildConfigField "boolean", "google_restriction", "false" buildConfigField "boolean", "surfing_mode", "false" buildConfigField "boolean", "sepia_search", "false" buildConfigField "boolean", "instance_switcher", "true" buildConfigField "boolean", "allow_remote_connections", "false" buildConfigField "boolean", "google_cast_lib", "false" buildConfigField "int", "cast_enabled", "0" buildConfigField "int", "default_theme", "2" } google_acad { applicationId "app.fedilab.fedilabtube" resValue "string", "app_name", "TubeAcad" resValue "string", "app_id", "app.fedilab.fedilabtube" buildConfigField "String", "version", "\"google_acad\"" buildConfigField "boolean", "full_instances", "false" buildConfigField "boolean", "google_restriction", "true" buildConfigField "boolean", "surfing_mode", "false" buildConfigField "boolean", "sepia_search", "false" buildConfigField "boolean", "instance_switcher", "true" buildConfigField "boolean", "allow_remote_connections", "false" buildConfigField "boolean", "google_cast_lib", "true" buildConfigField "int", "cast_enabled", "1" buildConfigField "int", "default_theme", "2" } fdroid_full { applicationId "app.fedilab.tubelab" resValue "string", "app_name", "TubeLab" resValue "string", "app_id", "app.fedilab.tubelab" buildConfigField "String", "version", "\"fdroid_full\"" buildConfigField "boolean", "full_instances", "true" buildConfigField "boolean", "google_restriction", "false" buildConfigField "boolean", "surfing_mode", "true" buildConfigField "boolean", "sepia_search", "true" buildConfigField "boolean", "instance_switcher", "true" buildConfigField "boolean", "allow_remote_connections", "true" buildConfigField "boolean", "google_cast_lib", "false" buildConfigField "int", "cast_enabled", "0" buildConfigField "int", "default_theme", "2" } google_full { applicationId "app.fedilab.tubelab" resValue "string", "app_name", "TubeLab" resValue "string", "app_id", "app.fedilab.tubelab" buildConfigField "String", "version", "\"google_full\"" buildConfigField "boolean", "full_instances", "true" buildConfigField "boolean", "google_restriction", "true" buildConfigField "boolean", "surfing_mode", "true" buildConfigField "boolean", "sepia_search", "true" buildConfigField "boolean", "instance_switcher", "true" buildConfigField "boolean", "allow_remote_connections", "true" buildConfigField "boolean", "google_cast_lib", "true" buildConfigField "int", "cast_enabled", "1" buildConfigField "int", "default_theme", "2" } } sourceSets { fdroid_acad { res.srcDirs = ['src/main/res', 'src/no_google_cast_lib/res', 'src/acad/res'] java.srcDirs = ['src/main/java', 'src/acad/java', 'src/no_google_donation/java', 'src/no_google_cast_lib/java'] } google_acad { res.srcDirs = ['src/main/res', 'src/google_cast_lib/res', 'src/acad/res'] java.srcDirs = ['src/main/java', 'src/acad/java', 'src/no_google_donation/java', 'src/google_cast_lib/java'] } fdroid_full { res.srcDirs = ['src/main/res', 'src/no_google_cast_lib/res', 'src/full/res'] java.srcDirs = ['src/main/java', 'src/full/java', 'src/no_google_donation/java', 'src/no_google_cast_lib/java'] } google_full { res.srcDirs = ['src/main/res', 'src/google_donation/res', 'src/google_cast_lib/res', 'src/full/res'] java.srcDirs = ['src/main/java', 'src/full/java', 'src/google_donation/java', 'src/google_cast_lib/java'] } } } allprojects { repositories { maven { url "https://jitpack.io" } maven { url "https://maven.google.com"} } } dependencies { implementation "androidx.multidex:multidex:2.0.1" implementation fileTree(dir: "libs", include: ["*.jar"]) implementation 'androidx.appcompat:appcompat:1.4.1' implementation 'androidx.preference:preference:1.2.0' implementation 'com.google.android.material:material:1.5.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.3' implementation 'androidx.vectordrawable:vectordrawable:1.1.0' implementation 'androidx.navigation:navigation-fragment:2.4.2' implementation "androidx.fragment:fragment:1.4.1" implementation 'androidx.navigation:navigation-ui:2.4.2' implementation ("androidx.navigation:navigation-dynamic-features-fragment:2.4.2") implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' implementation 'androidx.browser:browser:1.4.0' implementation 'androidx.documentfile:documentfile:1.0.1' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' implementation 'com.github.amoskorir:avatarimagegenerator:1.5.0' implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0' implementation 'com.github.GrenderG:Toasty:1.5.2' implementation 'com.google.android.exoplayer:exoplayer:2.12.2' implementation 'com.google.android.exoplayer:extension-mediasession:2.12.2' implementation "com.github.mabbas007:TagsEditText:1.0.5" implementation "com.github.bumptech.glide:glide:4.11.0" annotationProcessor "com.github.bumptech.glide:compiler:4.11.0" implementation 'jp.wasabeef:glide-transformations:4.0.0' implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" implementation "net.gotev:uploadservice:4.5.1" implementation "net.gotev:uploadservice-okhttp:4.5.1" implementation "com.google.code.gson:gson:2.8.6" implementation 'androidx.media:media:1.6.0' implementation 'com.github.ybq:Android-SpinKit:1.4.0' implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' implementation 'com.github.mancj:MaterialSearchBar:0.8.5' implementation "io.github.kobakei:ratethisapp:1.2.0" implementation 'com.github.vkay94:DoubleTapPlayerView:1.0.0' implementation "androidx.work:work-runtime:2.7.1" //************ DONATION GOOGLE ONLY **************// google_fullImplementation "com.android.billingclient:billing:4.1.0" //************ MATOMO --> acad instances only **************// fdroid_acadImplementation 'org.matomo.sdk:tracker:4.1.2' google_acadImplementation 'org.matomo.sdk:tracker:4.1.2' //************ CAST **************/// //---> Google libs (google_full) google_acadImplementation "com.google.android.gms:play-services-cast-tv:19.0.1" google_acadImplementation "com.google.android.gms:play-services-cast:21.0.1" google_acadImplementation "androidx.mediarouter:mediarouter:1.3.0" google_acadImplementation 'com.google.android.gms:play-services-cast-framework:21.0.1' google_fullImplementation "com.google.android.gms:play-services-cast-tv:19.0.1" google_fullImplementation "com.google.android.gms:play-services-cast:21.0.1" google_fullImplementation "androidx.mediarouter:mediarouter:1.3.0" google_fullImplementation 'com.google.android.gms:play-services-cast-framework:21.0.1' //----> Other flavors fdroid_acadImplementation 'su.litvak.chromecast:api-v2:0.11.3' fdroid_acadImplementation 'com.fasterxml.jackson.core:jackson-core:2.12.0' fdroid_acadImplementation 'org.slf4j:slf4j-simple:1.7.30' fdroid_acadImplementation 'com.github.evozi:Cyanea:1.0.7' fdroid_fullImplementation 'su.litvak.chromecast:api-v2:0.11.3' fdroid_fullImplementation 'com.fasterxml.jackson.core:jackson-core:2.12.0' fdroid_fullImplementation 'org.slf4j:slf4j-simple:1.7.30' }