~cszikszoy/do-plugins/pastebin

131 by Alex Launi
Fix null error and config in GMail
1
/* GMailConfig.cs
2
 *
3
 * GNOME Do is the legal property of its developers. Please refer to the
4
 * COPYRIGHT file distributed with this
5
 * source distribution.
6
 *
7
 * This program is free software: you can redistribute it and/or modify
8
 * it under the terms of the GNU General Public License as published by
9
 * the Free Software Foundation, either version 3 of the License, or
10
 * (at your option) any later version.
11
 *
12
 * This program is distributed in the hope that it will be useful,
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 * GNU General Public License for more details.
16
 *
17
 * You should have received a copy of the GNU General Public License
18
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
19
 */
20
21
22
using System;
23
using System.Text.RegularExpressions;
24
25
using Gtk;
26
using Do.UI;
27
using Do.Addins;
28
29
namespace GMailContacts
30
{	
31
	public class GMailConfig : AbstractLoginWidget
32
	{
33
		const string EmailPattern = @"[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\."
34
            + @"[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*"
35
            + @"[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?";
36
            
37
        const string Uri = "https://www.google.com/accounts/NewAccount?service=cl";
38
        
39
		public GMailConfig() : base ("GMail")
40
		{
41
			GetAccountButton.Uri = Uri;
42
		}
43
		
44
		protected override bool Validate (string username, string password)
45
		{
46
			if (ValidateUsername (username) && password.Length >= 8)
47
				return GMail.TryConnect (username, password);
48
			return false;
49
		}
50
		
51
		private bool ValidateUsername (string username)
52
		{			
53
			return new Regex (EmailPattern, 
54
				RegexOptions.Compiled).IsMatch (username);
55
		}
56
	}
57
}