Esempio n. 1
0
        public string GetPackageName(MonoDroidProjectConfiguration conf)
        {
            var f = GetManifestFileName(conf);

            if (!f.IsNullOrEmpty)
            {
                if (packageNameCache == null)
                {
                    packageNameCache = new AndroidPackageNameCache(this);
                }
                string packageName = packageNameCache.GetPackageName(f);
                if (!string.IsNullOrEmpty(packageName))
                {
                    return(packageName);
                }
            }

            //no name in manifest, use same default package name as GetAndroidPackageName MSBuild task
            var name = conf.CompiledOutputName.FileNameWithoutExtension.Replace(" ", "");

            if (name.Contains("."))
            {
                return(name);
            }
            else
            {
                return(name + "." + name);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// User setting of device for running app in simulator. Null means use default.
        /// </summary>
        public string GetDeviceTarget(MonoDroidProjectConfiguration conf)
        {
            //FIXME: do we really want this to be per-project/per-configuration? or should it be a global MD setting?
            var device = UserProperties.GetValue <string> (GetDeviceTargetKey(conf));

            if (string.IsNullOrEmpty(device))
            {
                return(null);
            }
            return(device);
        }
Esempio n. 3
0
 static void ClearUploadFlags(MonoDroidProjectConfiguration conf)
 {
     try {
         var file = GetUploadFlagFileName(conf);
         if (File.Exists(file))
         {
             File.Delete(file);
         }
     } catch (Exception ex) {
         LoggingService.LogError("Error clearing upload flags", ex);
     }
 }
Esempio n. 4
0
 //simple flag used to determine whether the current binary has been uploaded to the device
 //we clear it before signing, and set it for each device after successful upload
 static bool GetUploadFlag(MonoDroidProjectConfiguration conf, AndroidDevice device)
 {
     try {
         var file = GetUploadFlagFileName(conf);
         if (File.Exists(file))
         {
             var deviceIds = File.ReadAllLines(file);
             return(deviceIds.Contains(device.ID));
         }
     } catch (Exception ex) {
         LoggingService.LogError("Error reading upload flag", ex);
     }
     return(true);
 }
Esempio n. 5
0
 static void SetUploadFlag(MonoDroidProjectConfiguration conf, AndroidDevice device)
 {
     try {
         var file = GetUploadFlagFileName(conf);
         if (!File.Exists(file))
         {
             File.WriteAllText(file, device.ID);
         }
         else
         {
             File.AppendAllText(file, "\n" + device.ID);
         }
     } catch (Exception ex) {
         LoggingService.LogError("Error setting upload flag", ex);
     }
 }
Esempio n. 6
0
        public override SolutionItemConfiguration CreateConfiguration(string name)
        {
            var conf = new MonoDroidProjectConfiguration(name);

            conf.CopyFrom(base.CreateConfiguration(name));

            if (conf.Name.IndexOf("debug", StringComparison.OrdinalIgnoreCase) > -1)
            {
                conf.AndroidUseSharedRuntime = true;
                conf.MonoDroidLinkMode       = MonoDroidLinkMode.None;
            }
            else
            {
                conf.AndroidUseSharedRuntime = false;
                conf.MonoDroidLinkMode       = MonoDroidLinkMode.SdkOnly;
            }

            return(conf);
        }
Esempio n. 7
0
        FilePath GetManifestFileName(MonoDroidProjectConfiguration conf)
        {
            if (conf != null && !conf.AndroidManifest.IsNullOrEmpty)
            {
                return(conf.AndroidManifest);
            }

            // AndroidManifest property may have not been added to the solution,
            // yet it could exist in the default location.
            if (string.IsNullOrEmpty(AndroidManifest))
            {
                var defManifestPath = GetDefaultManifestFileName();
                if (File.Exists(defManifestPath))
                {
                    AddExistingManifest(defManifestPath);
                    MonoDevelop.Ide.IdeApp.ProjectOperations.Save(this);
                }
            }

            return(this.AndroidManifest);
        }
Esempio n. 8
0
        static bool GetActivityNameFromManifest(IProgressMonitor monitor, MonoDroidProjectConfiguration conf, out string activity)
        {
            activity = null;

            var manifestFile = conf.ObjDir.Combine("android", "AndroidManifest.xml");

            if (!File.Exists(manifestFile))
            {
                monitor.ReportError("Intermediate manifest file is missing", null);
                return(false);
            }

            var manifest = AndroidAppManifest.Load(manifestFile);

            activity = manifest.GetLaunchableActivityName();
            if (string.IsNullOrEmpty(activity))
            {
                monitor.ReportError("Application does not contain a launchable activity", null);
                return(false);
            }

            activity = manifest.PackageName + "/" + activity;
            return(true);
        }
Esempio n. 9
0
 static string GetUploadFlagFileName(MonoDroidProjectConfiguration conf)
 {
     return(conf.ObjDir.Combine("uploadflags.txt"));
 }
Esempio n. 10
0
		FilePath GetManifestFileName (MonoDroidProjectConfiguration conf)
		{
			if (conf != null && !conf.AndroidManifest.IsNullOrEmpty)
				return conf.AndroidManifest;

			// AndroidManifest property may have not been added to the solution,
			// yet it could exist in the default location.
			if (string.IsNullOrEmpty (AndroidManifest)) {
				var defManifestPath = GetDefaultManifestFileName ();
				if (File.Exists (defManifestPath)) {
					AddExistingManifest (defManifestPath);
					MonoDevelop.Ide.IdeApp.ProjectOperations.Save (this);
				}
			}

			return this.AndroidManifest;
		}
Esempio n. 11
0
		public ProjectFile GetManifestFile (MonoDroidProjectConfiguration conf)
		{
			var manifestFile = GetManifestFileName (conf);
			if (manifestFile.IsNullOrEmpty)
				return null;
			return Files.GetFile (manifestFile);
		}
Esempio n. 12
0
		public ProjectFile GetManifestFile (MonoDroidProjectConfiguration conf)
		{
			var manifestFile = GetManifestFileName (conf);
			if (manifestFile.IsNullOrEmpty)
				return null;
			
			// If a specified manifest is not in the project, add or create it
			// FIXME: do we really want to do this?
			var pf = Files.GetFile (manifestFile);
			if (pf != null)
				return pf;
			
			if (!File.Exists (manifestFile))
				AndroidAppManifest.Create (GetDefaultPackageName (), Name).WriteToFile (manifestFile);
			return AddFile (manifestFile);
		}
Esempio n. 13
0
		static bool GetActivityNameFromManifest (IProgressMonitor monitor, MonoDroidProjectConfiguration conf, out string activity)
		{
			activity = null;

			var manifestFile = conf.ObjDir.Combine ("android", "AndroidManifest.xml");
			if (!File.Exists (manifestFile)) {
				monitor.ReportError ("Intermediate manifest file is missing", null);
				return false;
			}
			
			var manifest = AndroidAppManifest.Load (manifestFile);
			activity = manifest.GetLaunchableActivityName ();
			if (string.IsNullOrEmpty (activity)) {
				monitor.ReportError ("Application does not contain a launchable activity", null);
				return false;
			}

			activity = manifest.PackageName + "/" + activity;
			return true;
		}
		public string GetPackageName (MonoDroidProjectConfiguration conf)
		{
			var f = GetManifestFileName (conf);
			
			if (!f.IsNullOrEmpty) {
				if (packageNameCache == null)
					packageNameCache = new AndroidPackageNameCache (this);
				string packageName = packageNameCache.GetPackageName (f);
				if (!string.IsNullOrEmpty (packageName))
					return packageName;
			}
			
			//no name in manifest, use same default package name as GetAndroidPackageName MSBuild task
			var name = conf.CompiledOutputName.FileNameWithoutExtension.Replace (" ", "").ToLowerInvariant ();
			if (name.Contains ("."))
				return name;
			else
				return name + "." + name;
		}
		string GetDeviceTargetKey (MonoDroidProjectConfiguration conf)
		{
			return "AndroidDeviceId-" + conf.Id;
		}
		/// <summary>
		/// User setting of device for running app in simulator. Null means use default.
		/// </summary>
		public string GetDeviceTarget (MonoDroidProjectConfiguration conf)
		{
			//FIXME: do we really want this to be per-project/per-configuration? or should it be a global MD setting?
			var device = UserProperties.GetValue<string> (GetDeviceTargetKey (conf));
			if (string.IsNullOrEmpty (device))
				return null;
			return device;
		}
Esempio n. 17
0
 public void SetDeviceTarget(MonoDroidProjectConfiguration conf, string value)
 {
     UserProperties.SetValue <string> (GetDeviceTargetKey(conf), value);
 }
Esempio n. 18
0
 string GetDeviceTargetKey(MonoDroidProjectConfiguration conf)
 {
     return("AndroidDeviceId-" + conf.Id);
 }
		public override SolutionItemConfiguration CreateConfiguration (string name)
		{
			var conf = new MonoDroidProjectConfiguration (name);
			conf.CopyFrom (base.CreateConfiguration (name));
			return conf;
		}
Esempio n. 20
0
		/// <summary>
		/// User setting of device for running app in simulator. Null means use default.
		/// </summary>
		public AndroidDevice GetDeviceTarget (MonoDroidProjectConfiguration conf)
		{
			return UserProperties.GetValue<AndroidDevice> (GetDeviceTargetKey (conf));
		}
		public void SetDeviceTarget (MonoDroidProjectConfiguration conf, string value)
		{
			UserProperties.SetValue<string> (GetDeviceTargetKey (conf), value);
		}
Esempio n. 22
0
		public void SetDeviceTarget (MonoDroidProjectConfiguration conf, AndroidDevice value)
		{
			UserProperties.SetValue<AndroidDevice> (GetDeviceTargetKey (conf), value);
		}
		public bool PackageNeedsSigning (MonoDroidProjectConfiguration conf)
		{
			return !File.Exists (conf.ApkSignedPath) ||
				File.GetLastWriteTime (conf.ApkSignedPath) < File.GetLastWriteTime (conf.ApkPath);
		}
Esempio n. 24
0
		public string GetPackageName (MonoDroidProjectConfiguration conf)
		{
			var pf = GetManifestFile (conf);

			//no manifest, use the same default package name as the MSBuild tasks do
			if (pf == null) {
				var name = conf.CompiledOutputName.FileNameWithoutExtension;
				return string.Format ("{0}.{0}", name.Replace (" ", "").ToLowerInvariant ());
			}

			if (packageNameCache == null)
				packageNameCache = new AndroidPackageNameCache (this);
			
			return packageNameCache.GetPackageName (pf.Name);
		}
		FilePath GetManifestFileName (MonoDroidProjectConfiguration conf)
		{
			if (conf != null && !conf.AndroidManifest.IsNullOrEmpty)
				return conf.AndroidManifest;
			return this.AndroidManifest;
		}
Esempio n. 26
0
		public override SolutionItemConfiguration CreateConfiguration (string name)
		{
			var conf = new MonoDroidProjectConfiguration (name);
			conf.CopyFrom (base.CreateConfiguration (name));

			if (conf.Name.IndexOf ("debug", StringComparison.OrdinalIgnoreCase) > -1) {
				conf.AndroidUseSharedRuntime = true;
				conf.MonoDroidLinkMode = MonoDroidLinkMode.None;
			} else {
				conf.AndroidUseSharedRuntime = false;
				conf.MonoDroidLinkMode = MonoDroidLinkMode.SdkOnly;
			}

			return conf;
		}