@@ -230,6 +230,8 @@ private static Dictionary<string, UnityPackageManagerRegistry> ReadRegistriesFro
230
230
/// <param name="invertSelection">If false, adds the selected registries and removes the
231
231
/// unselected registries. If true, removes the selected registries and adds the unselected
232
232
/// registries.</param>
233
+ /// <param name="addedRegistries">If specified, is extended with the list of registries added
234
+ /// to the manifest.<param>
233
235
/// <returns>true if successful, false otherwise.</returns>
234
236
private static bool SyncRegistriesToManifest (
235
237
PackageManifestModifier manifestModifier ,
@@ -238,7 +240,8 @@ private static bool SyncRegistriesToManifest(
238
240
HashSet < string > selectedRegistryUrls ,
239
241
bool addRegistries = true ,
240
242
bool removeRegistries = true ,
241
- bool invertSelection = false ) {
243
+ bool invertSelection = false ,
244
+ List < UnityPackageManagerRegistry > addedRegistries = null ) {
242
245
// Build a list of registries to add to and remove from the manifest.
243
246
var registriesToAdd = new List < UnityPackageManagerRegistry > ( ) ;
244
247
var registriesToRemove = new List < UnityPackageManagerRegistry > ( ) ;
@@ -280,6 +283,7 @@ private static bool SyncRegistriesToManifest(
280
283
"Added registries to {0}:\n {1}" ,
281
284
PackageManifestModifier . MANIFEST_FILE_PATH ,
282
285
UnityPackageManagerRegistry . ToString ( registriesToAdd ) ) ) ;
286
+ if ( addedRegistries != null ) addedRegistries . AddRange ( registriesToAdd ) ;
283
287
}
284
288
if ( registriesToRemove . Count > 0 ) {
285
289
logger . Log ( String . Format (
@@ -379,13 +383,19 @@ internal static void UpdateManifest(ManifestModificationMode mode,
379
383
380
384
// Applies the manifest modification based upon the modification mode.
381
385
Action < HashSet < string > > syncRegistriesToManifest = ( urlSelectionToApply ) => {
386
+ var addedRegistries = new List < UnityPackageManagerRegistry > ( ) ;
382
387
SyncRegistriesToManifest ( modifier , xmlRegistries , manifestRegistries ,
383
388
urlSelectionToApply ,
384
389
addRegistries : ( mode == ManifestModificationMode . Add ||
385
390
mode == ManifestModificationMode . Modify ) ,
386
391
removeRegistries : ( mode == ManifestModificationMode . Remove ||
387
392
mode == ManifestModificationMode . Modify ) ,
388
- invertSelection : mode == ManifestModificationMode . Remove ) ;
393
+ invertSelection : mode == ManifestModificationMode . Remove ,
394
+ addedRegistries : addedRegistries ) ;
395
+ // If any registries were added try migration if enabled.
396
+ if ( addedRegistries . Count > 0 && PromptToMigratePackages ) {
397
+ PackageMigrator . MigratePackages ( ) ;
398
+ }
389
399
} ;
390
400
391
401
if ( xmlRegistries . Count > 0 ) {
@@ -470,12 +480,15 @@ internal static void RestoreDefaultSettings() {
470
480
"Google.UnityPackageManagerResolver.Enable" ;
471
481
private const string PreferencePromptToAddRegistries =
472
482
"Google.UnityPackageManagerResolver.PromptToAddRegistries" ;
483
+ private const string PreferencePromptToMigratePackages =
484
+ "Google.UnityPackageManagerResolver.PromptToMigratePackages" ;
473
485
private const string PreferenceVerboseLoggingEnabled =
474
486
"Google.UnityPackageManagerResolver.VerboseLoggingEnabled" ;
475
487
// List of preference keys, used to restore default settings.
476
488
private static string [ ] PreferenceKeys = new [ ] {
477
489
PreferenceEnable ,
478
490
PreferencePromptToAddRegistries ,
491
+ PreferencePromptToMigratePackages ,
479
492
PreferenceVerboseLoggingEnabled
480
493
} ;
481
494
@@ -531,6 +544,15 @@ public static bool PromptToAddRegistries {
531
544
set { settings . SetBool ( PreferencePromptToAddRegistries , value ) ; }
532
545
}
533
546
547
+ /// <summary>
548
+ /// Enable / disable prompting the user to migrate Version Handler to UPM packages after a
549
+ /// registry has been added.
550
+ /// </summary>
551
+ public static bool PromptToMigratePackages {
552
+ get { return settings . GetBool ( PreferencePromptToMigratePackages , defaultValue : true ) ; }
553
+ set { settings . SetBool ( PreferencePromptToMigratePackages , value ) ; }
554
+ }
555
+
534
556
/// <summary>
535
557
/// Enable / disable verbose logging.
536
558
/// </summary>
0 commit comments