diff --git a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h index 60d8e26201..0a1e471492 100644 --- a/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h +++ b/extras/Projucer/Source/ProjectSaving/jucer_ProjectExport_Android.h @@ -95,7 +95,7 @@ public: } //============================================================================== - ValueWithDefault androidJavaLibs, androidAdditionalJavaFolders, androidAdditionalResourceFolders, androidRepositories, androidDependencies, androidCustomAppBuildGradleContent, + ValueWithDefault androidJavaLibs, androidAdditionalJavaFolders, androidAdditionalResourceFolders, androidProjectRepositories, androidRepositories, androidDependencies, androidCustomAppBuildGradleContent, androidScreenOrientation, androidCustomActivityClass, androidCustomApplicationClass, androidManifestCustomXmlElements, androidGradleSettingsContent, androidVersionCode, androidMinimumSDK, androidTargetSDK, androidTheme, androidExtraAssetsFolder, androidOboeRepositoryPath, androidInternetNeeded, androidMicNeeded, androidCameraNeeded, androidBluetoothNeeded, androidExternalReadPermission, androidExternalWritePermission, androidInAppBillingPermission, androidVibratePermission, androidOtherPermissions, @@ -108,6 +108,7 @@ public: androidJavaLibs (settings, Ids::androidJavaLibs, getUndoManager()), androidAdditionalJavaFolders (settings, Ids::androidAdditionalJavaFolders, getUndoManager()), androidAdditionalResourceFolders (settings, Ids::androidAdditionalResourceFolders, getUndoManager()), + androidProjectRepositories (settings, Ids::androidProjectRepositories, getUndoManager(), "google()\njcenter()"), androidRepositories (settings, Ids::androidRepositories, getUndoManager()), androidDependencies (settings, Ids::androidDependencies, getUndoManager()), androidCustomAppBuildGradleContent (settings, Ids::androidCustomAppBuildGradleContent, getUndoManager()), @@ -567,18 +568,7 @@ private: mo << "}" << newLine; mo << "" << newLine; mo << "allprojects {" << newLine; - mo << " repositories {" << newLine; - mo << " google()" << newLine; - mo << " jcenter()" << newLine; - - if (androidEnableRemoteNotifications.get()) - { - mo << " maven {" << newLine; - mo << " url \"https://maven.google.com\"" << newLine; - mo << " }" << newLine; - } - - mo << " }" << newLine; + mo << getAndroidProjectRepositories(); mo << "}" << newLine; return mo.toString(); @@ -774,6 +764,26 @@ private: return mo.toString(); } + String getAndroidProjectRepositories() const + { + MemoryOutputStream mo; + mo.setNewLineString ("\n"); + + auto repositories = StringArray::fromLines (androidProjectRepositories.get().toString()); + + if (androidEnableRemoteNotifications.get()) + repositories.add ("maven { url \"https://maven.google.com\" }"); + + mo << " repositories {" << newLine; + + for (auto& r : repositories) + mo << " " << r << newLine; + + mo << " }" << newLine; + + return mo.toString(); + } + String getAndroidRepositories() const { MemoryOutputStream mo; @@ -972,6 +982,10 @@ private: "dependency will be automatically added to module \"dependencies\" section for each library, so do " "not add the dependency yourself."); + props.add (new TextPropertyComponent (androidProjectRepositories, "Project Repositories", 32768, true), + "Custom project repositories (one per line). These will be used in project-level gradle file " + "\"allprojects { repositories {\" section instead of default ones."); + props.add (new TextPropertyComponent (androidRepositories, "Module Repositories", 32768, true), "Module repositories (one per line). These will be added to module-level gradle file repositories section. "); diff --git a/extras/Projucer/Source/Utility/Helpers/jucer_PresetIDs.h b/extras/Projucer/Source/Utility/Helpers/jucer_PresetIDs.h index 618c9ea828..07dee68eb0 100644 --- a/extras/Projucer/Source/Utility/Helpers/jucer_PresetIDs.h +++ b/extras/Projucer/Source/Utility/Helpers/jucer_PresetIDs.h @@ -196,6 +196,7 @@ namespace Ids DECLARE_ID (androidJavaLibs); DECLARE_ID (androidAdditionalJavaFolders); DECLARE_ID (androidAdditionalResourceFolders); + DECLARE_ID (androidProjectRepositories); DECLARE_ID (androidRepositories); DECLARE_ID (androidDependencies); DECLARE_ID (androidCustomAppBuildGradleContent);