public Settings(ISharedPreferences preferences, string systemLanguage, InfobaseManager.Infobase infobase) { _preferences = preferences; Language = systemLanguage; _name = infobase.Name; BaseUrl = infobase.BaseUrl; ApplicationString = infobase.ApplicationString; FtpPort = infobase.FtpPort; string lastUrl = _preferences.GetString("url", string.Empty); if (BaseUrl == lastUrl) { UserName = _preferences.GetString("user", infobase.UserName); Password = _preferences.GetString("password", infobase.Password); } else { UserName = infobase.UserName; Password = infobase.Password; } ClearCacheOnStart = infobase.IsActive && _preferences.GetBoolean("clearCache", ForceClearCache); infobase.IsActive = true; infobase.IsAutorun = true; WriteSettings(); }
void LoadList() { using (var basesList = Activity.FindViewById <ListView>(Resource.Id.infobasesList)) { var captions = new string[_manager.Infobases.Length + 1]; for (int i = 0; i < _manager.Infobases.Length; i++) { InfobaseManager.Infobase infobase = _manager.Infobases[i]; captions[i] = infobase.Name; if (infobase.IsActive) { captions[i] += "*"; } } captions[captions.Length - 1] = "..."; basesList.Adapter = new ArrayAdapter <string>(Activity, Resource.Layout.TextViewForListView, captions); basesList.ItemClick += basesList_ItemClick; basesList.ItemLongClick += basesList_ItemLongClick; } }
void basesList_ItemClick(object sender, AdapterView.ItemClickEventArgs e) { if (e.Position < _manager.Infobases.Length) { InfobaseManager.Infobase currentInfobase = _manager.Infobases[e.Position]; foreach (var infobase in _manager.Infobases) { if (infobase != currentInfobase) { infobase.IsActive = false; } } var settings = new Settings(_prefs, Activity.Resources.Configuration.Locale.Language, currentInfobase); _resultCallback(settings); } else { using (var builder = new AlertDialog.Builder(Activity)) { builder.SetTitle(D.CREATE_NEW_INFOBASE); var ll = new LinearLayout(Activity) { Orientation = Orientation.Vertical }; ll.SetPadding(10, 5, 10, 5); builder.SetView(ll); ll.AddView(new TextView(Activity) { Text = D.INFOBASE_NAME }); var editName = new EditText(Activity); editName.SetSingleLine(); ll.AddView(editName); ll.AddView(new TextView(Activity) { Text = D.URL }); var editUrl = new EditText(Activity) { Text = "http://" }; editUrl.SetSingleLine(); ll.AddView(editUrl); ll.AddView(new TextView(Activity) { Text = D.APPLICATION }); var editApplication = new EditText(Activity) { Text = "app" }; editApplication.SetSingleLine(); ll.AddView(editApplication); ll.AddView(new TextView(Activity) { Text = D.FTP_PORT }); var editFtpPort = new EditText(Activity) { Text = "21" }; editFtpPort.SetSingleLine(); ll.AddView(editFtpPort); builder.SetPositiveButton(D.OK, (s, args) => { _manager.CreateInfobase(editName.Text, editUrl.Text , editApplication.Text, editFtpPort.Text); LoadList(); }); builder.SetNegativeButton(D.CANCEL, (s, args) => { }); builder.Show(); } } }