private void ShowOwncloudDialog(Activity activity, Util.FileSelectedHandler onStartBrowse, Action onCancel, string defaultPath) { #if !EXCLUDE_JAVAFILESTORAGE && !NoNet AlertDialog.Builder builder = new AlertDialog.Builder(activity); View dlgContents = activity.LayoutInflater.Inflate(Resource.Layout.owncloudcredentials, null); builder.SetView(dlgContents); builder.SetPositiveButton(Android.Resource.String.Ok, (sender, args) => { string host = dlgContents.FindViewById <EditText>(Resource.Id.owncloud_url).Text; string user = dlgContents.FindViewById <EditText>(Resource.Id.http_user).Text; string password = dlgContents.FindViewById <EditText>(Resource.Id.http_password).Text; string scheme = defaultPath.Substring(0, defaultPath.IndexOf(_schemeSeparator, StringComparison.Ordinal)); if (host.Contains(_schemeSeparator) == false) { host = scheme + _schemeSeparator + host; } string httpPath = new Keepass2android.Javafilestorage.WebDavStorage(null).BuildFullPath(WebDavFileStorage.Owncloud2Webdav(host), user, password); onStartBrowse(httpPath); }); EventHandler <DialogClickEventArgs> evtH = new EventHandler <DialogClickEventArgs>((sender, e) => onCancel()); builder.SetNegativeButton(Android.Resource.String.Cancel, evtH); builder.SetTitle(activity.GetString(Resource.String.enter_owncloud_login_title)); Dialog dialog = builder.Create(); dialog.Show(); #endif }
private void ShowSftpDialog(Activity activity, Util.FileSelectedHandler onStartBrowse, Action onCancel) { #if !EXCLUDE_JAVAFILESTORAGE && !NoNet AlertDialog.Builder builder = new AlertDialog.Builder(activity); View dlgContents = activity.LayoutInflater.Inflate(Resource.Layout.sftpcredentials, null); builder.SetView(dlgContents); builder.SetPositiveButton(Android.Resource.String.Ok, (sender, args) => { string host = dlgContents.FindViewById <EditText>(Resource.Id.sftp_host).Text; string portText = dlgContents.FindViewById <EditText>(Resource.Id.sftp_port).Text; int port = Keepass2android.Javafilestorage.SftpStorage.DefaultSftpPort; if (!string.IsNullOrEmpty(portText)) { int.TryParse(portText, out port); } string user = dlgContents.FindViewById <EditText>(Resource.Id.sftp_user).Text; string password = dlgContents.FindViewById <EditText>(Resource.Id.sftp_password).Text; string initialPath = dlgContents.FindViewById <EditText>(Resource.Id.sftp_initial_dir).Text; string sftpPath = new Keepass2android.Javafilestorage.SftpStorage().BuildFullPath(host, port, initialPath, user, password); onStartBrowse(sftpPath); }); EventHandler <DialogClickEventArgs> evtH = new EventHandler <DialogClickEventArgs>((sender, e) => onCancel()); builder.SetNegativeButton(Android.Resource.String.Cancel, evtH); builder.SetTitle(activity.GetString(Resource.String.enter_sftp_login_title)); Dialog dialog = builder.Create(); dialog.Show(); #endif }
private void ShowFtpDialog(Activity activity, Util.FileSelectedHandler onStartBrowse, Action onCancel) { #if !NoNet AlertDialog.Builder builder = new AlertDialog.Builder(activity); View dlgContents = activity.LayoutInflater.Inflate(Resource.Layout.ftpcredentials, null); builder.SetView(dlgContents); builder.SetPositiveButton(Android.Resource.String.Ok, (sender, args) => { string host = dlgContents.FindViewById <EditText>(Resource.Id.ftp_host).Text; string portText = dlgContents.FindViewById <EditText>(Resource.Id.ftp_port).Text; FtpEncryptionMode encryption = (FtpEncryptionMode)dlgContents.FindViewById <Spinner>(Resource.Id.ftp_encryption).SelectedItemPosition; int port = NetFtpFileStorage.GetDefaultPort(encryption); if (!string.IsNullOrEmpty(portText)) { int.TryParse(portText, out port); } string user = dlgContents.FindViewById <EditText>(Resource.Id.ftp_user).Text; string password = dlgContents.FindViewById <EditText>(Resource.Id.ftp_password).Text; string initialPath = dlgContents.FindViewById <EditText>(Resource.Id.ftp_initial_dir).Text; string ftpPath = new NetFtpFileStorage(_activity, App.Kp2a).BuildFullPath(host, port, initialPath, user, password, encryption); onStartBrowse(ftpPath); }); EventHandler <DialogClickEventArgs> evtH = new EventHandler <DialogClickEventArgs>((sender, e) => onCancel()); builder.SetNegativeButton(Android.Resource.String.Cancel, evtH); builder.SetTitle(activity.GetString(Resource.String.enter_ftp_login_title)); Dialog dialog = builder.Create(); dialog.Show(); #endif }
private void ShowMegaDialog(Activity activity, Util.FileSelectedHandler onStartBrowse, Action onCancel, string defaultPath) { #if !NoNet var settings = MegaFileStorage.GetAccountSettings(activity); AlertDialog.Builder builder = new AlertDialog.Builder(activity); View dlgContents = activity.LayoutInflater.Inflate(Resource.Layout.megacredentials, null); if (!defaultPath.EndsWith(_schemeSeparator)) { string user = ""; string password = ""; if (!defaultPath.EndsWith(_schemeSeparator)) { user = MegaFileStorage.GetAccount(defaultPath); if (!settings.PasswordByUsername.TryGetValue(user, out password)) { password = ""; } dlgContents.FindViewById <EditText>(Resource.Id.mega_user).Enabled = false; } dlgContents.FindViewById <EditText>(Resource.Id.mega_user).Text = user; dlgContents.FindViewById <EditText>(Resource.Id.mega_password).Text = password; } var userView = ((AutoCompleteTextView)dlgContents.FindViewById(Resource.Id.mega_user)); userView.Adapter = new ArrayAdapter(activity, Android.Resource.Layout.SimpleListItem1, Android.Resource.Id.Text1, settings.PasswordByUsername.Keys.ToArray()); userView.TextChanged += (sender, args) => { if (userView.Text != null && settings.PasswordByUsername.TryGetValue(userView.Text, out string pwd)) { dlgContents.FindViewById <EditText>(Resource.Id.mega_password).Text = pwd; } }; builder.SetCancelable(false); builder.SetView(dlgContents); builder.SetPositiveButton(Android.Resource.String.Ok, (sender, args) => { string user = dlgContents.FindViewById <EditText>(Resource.Id.mega_user).Text; string password = dlgContents.FindViewById <EditText>(Resource.Id.mega_password).Text; //store the credentials in the mega credentials store: settings.PasswordByUsername[user] = password; MegaFileStorage.UpdateAccountSettings(settings, activity); onStartBrowse(MegaFileStorage.ProtocolId + "://" + user); }); EventHandler <DialogClickEventArgs> evtH = new EventHandler <DialogClickEventArgs>((sender, e) => onCancel()); builder.SetNegativeButton(Android.Resource.String.Cancel, evtH); builder.SetTitle(activity.GetString(Resource.String.enter_mega_login_title)); Dialog dialog = builder.Create(); dialog.Show(); #endif }
private void ShowFtpDialog(Activity activity, Util.FileSelectedHandler onStartBrowse, Action onCancel, string defaultPath) { #if !NoNet AlertDialog.Builder builder = new AlertDialog.Builder(activity); View dlgContents = activity.LayoutInflater.Inflate(Resource.Layout.ftpcredentials, null); if (!defaultPath.EndsWith(_schemeSeparator)) { var connection = NetFtpFileStorage.ConnectionSettings.FromIoc(IOConnectionInfo.FromPath(defaultPath)); dlgContents.FindViewById <EditText>(Resource.Id.ftp_user).Text = connection.Username; dlgContents.FindViewById <EditText>(Resource.Id.ftp_password).Text = connection.Password; dlgContents.FindViewById <Spinner>(Resource.Id.ftp_encryption).SetSelection((int)connection.EncryptionMode); var uri = NetFtpFileStorage.IocToUri(IOConnectionInfo.FromPath(defaultPath)); string pathAndQuery = uri.PathAndQuery; var host = uri.Host; var localPath = pathAndQuery; if (!uri.IsDefaultPort) { dlgContents.FindViewById <EditText>(Resource.Id.ftp_port).Text = uri.Port.ToString(); } dlgContents.FindViewById <EditText>(Resource.Id.ftp_host).Text = host; dlgContents.FindViewById <EditText>(Resource.Id.ftp_initial_dir).Text = localPath; } builder.SetView(dlgContents); builder.SetPositiveButton(Android.Resource.String.Ok, (sender, args) => { string host = dlgContents.FindViewById <EditText>(Resource.Id.ftp_host).Text; string portText = dlgContents.FindViewById <EditText>(Resource.Id.ftp_port).Text; FtpEncryptionMode encryption = (FtpEncryptionMode)dlgContents.FindViewById <Spinner>(Resource.Id.ftp_encryption).SelectedItemPosition; int port = NetFtpFileStorage.GetDefaultPort(encryption); if (!string.IsNullOrEmpty(portText)) { int.TryParse(portText, out port); } string user = dlgContents.FindViewById <EditText>(Resource.Id.ftp_user).Text; string password = dlgContents.FindViewById <EditText>(Resource.Id.ftp_password).Text; string initialPath = dlgContents.FindViewById <EditText>(Resource.Id.ftp_initial_dir).Text; string ftpPath = new NetFtpFileStorage(_activity, App.Kp2a).BuildFullPath(host, port, initialPath, user, password, encryption); onStartBrowse(ftpPath); }); EventHandler <DialogClickEventArgs> evtH = new EventHandler <DialogClickEventArgs>((sender, e) => onCancel()); builder.SetNegativeButton(Android.Resource.String.Cancel, evtH); builder.SetTitle(activity.GetString(Resource.String.enter_ftp_login_title)); Dialog dialog = builder.Create(); dialog.Show(); #endif }
private void ShowSftpDialog(Activity activity, Util.FileSelectedHandler onStartBrowse, Action onCancel, string defaultPath) { #if !EXCLUDE_JAVAFILESTORAGE && !NoNet AlertDialog.Builder builder = new AlertDialog.Builder(activity); View dlgContents = activity.LayoutInflater.Inflate(Resource.Layout.sftpcredentials, null); var spinner = dlgContents.FindViewById <Spinner>(Resource.Id.sftp_auth_mode_spinner); dlgContents.FindViewById <Button>(Resource.Id.send_public_key_button).Click += (sender, args) => { var fileStorage = new Keepass2android.Javafilestorage.SftpStorage(activity.ApplicationContext); string pub_filename = fileStorage.CreateKeyPair(); Intent sendIntent = new Intent(); sendIntent.SetAction(Intent.ActionSend); sendIntent.PutExtra(Intent.ExtraText, System.IO.File.ReadAllText(pub_filename)); sendIntent.PutExtra(Intent.ExtraSubject, "Keepass2Android sftp public key"); sendIntent.SetType("text/plain"); activity.StartActivity(Intent.CreateChooser(sendIntent, "Send public key to...")); }; spinner.ItemSelected += (sender, args) => { if (spinner.SelectedItemPosition == 0) { dlgContents.FindViewById <EditText>(Resource.Id.sftp_password).Visibility = ViewStates.Visible; dlgContents.FindViewById <Button>(Resource.Id.send_public_key_button).Visibility = ViewStates.Gone; } else { dlgContents.FindViewById <EditText>(Resource.Id.sftp_password).Visibility = ViewStates.Gone; dlgContents.FindViewById <Button>(Resource.Id.send_public_key_button).Visibility = ViewStates.Visible; } }; if (!defaultPath.EndsWith(_schemeSeparator)) { var fileStorage = new Keepass2android.Javafilestorage.SftpStorage(activity.ApplicationContext); SftpStorage.ConnectionInfo ci = fileStorage.SplitStringToConnectionInfo(defaultPath); dlgContents.FindViewById <EditText>(Resource.Id.sftp_host).Text = ci.Host; dlgContents.FindViewById <EditText>(Resource.Id.sftp_port).Text = ci.Port.ToString(); dlgContents.FindViewById <EditText>(Resource.Id.sftp_user).Text = ci.Username; dlgContents.FindViewById <EditText>(Resource.Id.sftp_password).Text = ci.Password; dlgContents.FindViewById <EditText>(Resource.Id.sftp_initial_dir).Text = ci.LocalPath; if (string.IsNullOrEmpty(ci.Password)) { spinner.SetSelection(1); } } builder.SetView(dlgContents); builder.SetPositiveButton(Android.Resource.String.Ok, (sender, args) => { string host = dlgContents.FindViewById <EditText>(Resource.Id.sftp_host).Text; string portText = dlgContents.FindViewById <EditText>(Resource.Id.sftp_port).Text; int port = Keepass2android.Javafilestorage.SftpStorage.DefaultSftpPort; if (!string.IsNullOrEmpty(portText)) { int.TryParse(portText, out port); } string user = dlgContents.FindViewById <EditText>(Resource.Id.sftp_user).Text; string password = dlgContents.FindViewById <EditText>(Resource.Id.sftp_password).Text; string initialPath = dlgContents.FindViewById <EditText>(Resource.Id.sftp_initial_dir).Text; if (string.IsNullOrEmpty(initialPath)) { initialPath = "/"; } string sftpPath = new Keepass2android.Javafilestorage.SftpStorage(activity.ApplicationContext).BuildFullPath(host, port, initialPath, user, password); onStartBrowse(sftpPath); }); EventHandler <DialogClickEventArgs> evtH = new EventHandler <DialogClickEventArgs>((sender, e) => onCancel()); builder.SetNegativeButton(Android.Resource.String.Cancel, evtH); builder.SetTitle(activity.GetString(Resource.String.enter_sftp_login_title)); Dialog dialog = builder.Create(); dialog.Show(); #endif }