started working on FTP(S) implementation using netftp and introduction of "server accounts"

This commit is contained in:
Philipp Crocoll 2016-02-03 12:43:37 +01:00
parent 91059a8349
commit c694ed0f96
14 changed files with 120 additions and 141 deletions

3
.gitmodules vendored
View File

@ -4,3 +4,6 @@
[submodule "src/SamsungPass"]
path = src/SamsungPass
url = https://github.com/sraiteri/Xamarin-Samsung-Pass.git
[submodule "src/netftpandroid"]
path = src/netftpandroid
url = https://git01.codeplex.com/forks/philippc/netftpandroid

View File

@ -47,7 +47,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AncientIconSet", "AncientIc
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FingerprintTest", "FingerprintTest\FingerprintTest.csproj", "{52C0A0E7-D625-44BE-948E-D98BC6C82F0F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SamsungPass", "SamsungPass\Xamarin.SamsungPass\SamsungPass\SamsungPass.csproj", "{3A4B8E88-FA9B-4663-BCDA-21C12E3AF98A}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FtpClientTest", "FtpClientTest\FtpClientTest.csproj", "{8230EA71-1DC2-426A-A820-3B94E1678379}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Net.FtpClient.Android", "netftpandroid\System.Net.FtpClient\System.Net.FtpClient.Android.csproj", "{146FD497-BA03-4740-B6C5-5C84EA8FCDE2}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -139,7 +141,6 @@ Global
{A8779D4D-7C49-4C2F-82BD-2CDC448391DA}.ReleaseNoNet|x64.ActiveCfg = Release|Any CPU
{53A9CB7F-6553-4BC0-B56B-9410BB2E59AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{53A9CB7F-6553-4BC0-B56B-9410BB2E59AA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{53A9CB7F-6553-4BC0-B56B-9410BB2E59AA}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{53A9CB7F-6553-4BC0-B56B-9410BB2E59AA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{53A9CB7F-6553-4BC0-B56B-9410BB2E59AA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{53A9CB7F-6553-4BC0-B56B-9410BB2E59AA}.Debug|Win32.ActiveCfg = Debug|Any CPU
@ -218,7 +219,6 @@ Global
{5CF675A5-9BEE-4720-BED9-D5BF14A2EBF9}.ReleaseNoNet|x64.ActiveCfg = Release|Any CPU
{48574278-4779-4B3A-A9E4-9CF1BC285D0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{48574278-4779-4B3A-A9E4-9CF1BC285D0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{48574278-4779-4B3A-A9E4-9CF1BC285D0B}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{48574278-4779-4B3A-A9E4-9CF1BC285D0B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{48574278-4779-4B3A-A9E4-9CF1BC285D0B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{48574278-4779-4B3A-A9E4-9CF1BC285D0B}.Debug|Win32.ActiveCfg = Debug|Any CPU
@ -255,7 +255,6 @@ Global
{3C0F7FE5-639F-4422-A087-8B26CF862D1B}.ReleaseNoNet|x64.ActiveCfg = Release|Any CPU
{70D3844A-D9FA-4A64-B205-A84C6A822196}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{70D3844A-D9FA-4A64-B205-A84C6A822196}.Debug|Any CPU.Build.0 = Debug|Any CPU
{70D3844A-D9FA-4A64-B205-A84C6A822196}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{70D3844A-D9FA-4A64-B205-A84C6A822196}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{70D3844A-D9FA-4A64-B205-A84C6A822196}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{70D3844A-D9FA-4A64-B205-A84C6A822196}.Debug|Win32.ActiveCfg = Debug|Any CPU
@ -530,24 +529,48 @@ Global
{52C0A0E7-D625-44BE-948E-D98BC6C82F0F}.ReleaseNoNet|Mixed Platforms.Deploy.0 = Release|Any CPU
{52C0A0E7-D625-44BE-948E-D98BC6C82F0F}.ReleaseNoNet|Win32.ActiveCfg = Release|Any CPU
{52C0A0E7-D625-44BE-948E-D98BC6C82F0F}.ReleaseNoNet|x64.ActiveCfg = Release|Any CPU
{3A4B8E88-FA9B-4663-BCDA-21C12E3AF98A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3A4B8E88-FA9B-4663-BCDA-21C12E3AF98A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3A4B8E88-FA9B-4663-BCDA-21C12E3AF98A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{3A4B8E88-FA9B-4663-BCDA-21C12E3AF98A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{3A4B8E88-FA9B-4663-BCDA-21C12E3AF98A}.Debug|Win32.ActiveCfg = Debug|Any CPU
{3A4B8E88-FA9B-4663-BCDA-21C12E3AF98A}.Debug|x64.ActiveCfg = Debug|Any CPU
{3A4B8E88-FA9B-4663-BCDA-21C12E3AF98A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3A4B8E88-FA9B-4663-BCDA-21C12E3AF98A}.Release|Any CPU.Build.0 = Release|Any CPU
{3A4B8E88-FA9B-4663-BCDA-21C12E3AF98A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{3A4B8E88-FA9B-4663-BCDA-21C12E3AF98A}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{3A4B8E88-FA9B-4663-BCDA-21C12E3AF98A}.Release|Win32.ActiveCfg = Release|Any CPU
{3A4B8E88-FA9B-4663-BCDA-21C12E3AF98A}.Release|x64.ActiveCfg = Release|Any CPU
{3A4B8E88-FA9B-4663-BCDA-21C12E3AF98A}.ReleaseNoNet|Any CPU.ActiveCfg = Release|Any CPU
{3A4B8E88-FA9B-4663-BCDA-21C12E3AF98A}.ReleaseNoNet|Any CPU.Build.0 = Release|Any CPU
{3A4B8E88-FA9B-4663-BCDA-21C12E3AF98A}.ReleaseNoNet|Mixed Platforms.ActiveCfg = Release|Any CPU
{3A4B8E88-FA9B-4663-BCDA-21C12E3AF98A}.ReleaseNoNet|Mixed Platforms.Build.0 = Release|Any CPU
{3A4B8E88-FA9B-4663-BCDA-21C12E3AF98A}.ReleaseNoNet|Win32.ActiveCfg = Release|Any CPU
{3A4B8E88-FA9B-4663-BCDA-21C12E3AF98A}.ReleaseNoNet|x64.ActiveCfg = Release|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.Debug|Mixed Platforms.Deploy.0 = Debug|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.Debug|Win32.ActiveCfg = Debug|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.Debug|x64.ActiveCfg = Debug|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.Release|Any CPU.Build.0 = Release|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.Release|Any CPU.Deploy.0 = Release|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.Release|Mixed Platforms.Deploy.0 = Release|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.Release|Win32.ActiveCfg = Release|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.Release|x64.ActiveCfg = Release|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.ReleaseNoNet|Any CPU.ActiveCfg = Release|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.ReleaseNoNet|Any CPU.Build.0 = Release|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.ReleaseNoNet|Any CPU.Deploy.0 = Release|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.ReleaseNoNet|Mixed Platforms.ActiveCfg = Release|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.ReleaseNoNet|Mixed Platforms.Build.0 = Release|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.ReleaseNoNet|Mixed Platforms.Deploy.0 = Release|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.ReleaseNoNet|Win32.ActiveCfg = Release|Any CPU
{8230EA71-1DC2-426A-A820-3B94E1678379}.ReleaseNoNet|x64.ActiveCfg = Release|Any CPU
{146FD497-BA03-4740-B6C5-5C84EA8FCDE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{146FD497-BA03-4740-B6C5-5C84EA8FCDE2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{146FD497-BA03-4740-B6C5-5C84EA8FCDE2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{146FD497-BA03-4740-B6C5-5C84EA8FCDE2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{146FD497-BA03-4740-B6C5-5C84EA8FCDE2}.Debug|Win32.ActiveCfg = Debug|Any CPU
{146FD497-BA03-4740-B6C5-5C84EA8FCDE2}.Debug|x64.ActiveCfg = Debug|Any CPU
{146FD497-BA03-4740-B6C5-5C84EA8FCDE2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{146FD497-BA03-4740-B6C5-5C84EA8FCDE2}.Release|Any CPU.Build.0 = Release|Any CPU
{146FD497-BA03-4740-B6C5-5C84EA8FCDE2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{146FD497-BA03-4740-B6C5-5C84EA8FCDE2}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{146FD497-BA03-4740-B6C5-5C84EA8FCDE2}.Release|Win32.ActiveCfg = Release|Any CPU
{146FD497-BA03-4740-B6C5-5C84EA8FCDE2}.Release|x64.ActiveCfg = Release|Any CPU
{146FD497-BA03-4740-B6C5-5C84EA8FCDE2}.ReleaseNoNet|Any CPU.ActiveCfg = Release|Any CPU
{146FD497-BA03-4740-B6C5-5C84EA8FCDE2}.ReleaseNoNet|Any CPU.Build.0 = Release|Any CPU
{146FD497-BA03-4740-B6C5-5C84EA8FCDE2}.ReleaseNoNet|Mixed Platforms.ActiveCfg = Release|Any CPU
{146FD497-BA03-4740-B6C5-5C84EA8FCDE2}.ReleaseNoNet|Mixed Platforms.Build.0 = Release|Any CPU
{146FD497-BA03-4740-B6C5-5C84EA8FCDE2}.ReleaseNoNet|Win32.ActiveCfg = Release|Any CPU
{146FD497-BA03-4740-B6C5-5C84EA8FCDE2}.ReleaseNoNet|x64.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -255,6 +255,11 @@ namespace keepass2android.Io
}
}
public void ResolveAccount(IOConnectionInfo ioc)
{
}
}
class AndroidContentWriteTransaction : IWriteTransaction

View File

@ -395,6 +395,11 @@ namespace keepass2android.Io
return false;
}
public void ResolveAccount(IOConnectionInfo ioc)
{
}
private bool IsLocalFileFlaggedReadOnly(IOConnectionInfo ioc)
{
try

View File

@ -563,6 +563,11 @@ namespace keepass2android.Io
return _cachedStorage.IsReadOnly(ioc, reason);
}
public void ResolveAccount(IOConnectionInfo ioc)
{
_cachedStorage.ResolveAccount(ioc);
}
private void StoreFilePath(IOConnectionInfo folderPath, string filename, IOConnectionInfo res)
{
File.WriteAllText(CachedFilePath(GetPseudoIoc(folderPath, filename)) + ".filepath", res.Path);

View File

@ -177,7 +177,12 @@ namespace keepass2android.Io
/// </summary>
bool IsReadOnly(IOConnectionInfo ioc, OptionalOut<UiStringKey> reason = null );
/// <summary>
/// if the ioc.Path contains a string which refers to a stored account (like FTP account with specific settings),
/// this method resolves the path so that it is a path which can be consumed by the file storage "operational" methods (=all other methods)
/// </summary>
/// <param name="ioc"></param>
void ResolveAccount(IOConnectionInfo ioc);
}
public interface IPermissionRequestingFileStorage

View File

@ -294,6 +294,11 @@ namespace keepass2android.Io
return false; //TODO implement. note, however, that we MAY return false even if it's read-only
}
public void ResolveAccount(IOConnectionInfo ioc)
{
}
public void OnCreate(IFileStorageSetupActivity activity, Bundle savedInstanceState)
{
_jfs.OnCreate(((IJavaFileStorageFileStorageSetupActivity)activity), savedInstanceState);

View File

@ -181,6 +181,11 @@ namespace keepass2android.Io
return _baseStorage.IsReadOnly(ioc, reason);
}
public void ResolveAccount(IOConnectionInfo ioc)
{
_baseStorage.ResolveAccount(ioc);
}
public void OnRequestPermissionsResult(IFileStorageSetupActivity fileStorageSetupActivity, int requestCode,
string[] permissions, Permission[] grantResults)
{

View File

@ -86,6 +86,7 @@
<Compile Include="Io\IFileStorage.cs" />
<Compile Include="Io\IoUtil.cs" />
<Compile Include="Io\JavaFileStorage.cs" />
<Compile Include="Io\NetFtpFileStorage.cs" />
<Compile Include="Io\OfflineSwitchableFileStorage.cs" />
<Compile Include="Io\SftpFileStorage.cs" />
<Compile Include="Io\SkyDriveFileStorage.cs" />
@ -133,6 +134,10 @@
<Project>{70D3844A-D9FA-4A64-B205-A84C6A822196}</Project>
<Name>KP2AKdbLibraryBinding</Name>
</ProjectReference>
<ProjectReference Include="..\netftpandroid\System.Net.FtpClient\System.Net.FtpClient.Android.csproj">
<Project>{146FD497-BA03-4740-B6C5-5C84EA8FCDE2}</Project>
<Name>System.Net.FtpClient.Android</Name>
</ProjectReference>
<ProjectReference Include="..\TwofishCipher\TwofishCipher.csproj">
<Project>{5CF675A5-9BEE-4720-BED9-D5BF14A2EBF9}</Project>
<Name>TwofishCipher</Name>

View File

@ -42,50 +42,7 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="2618" column="0" selection-start-line="2618" selection-start-column="0" selection-end-line="2618" selection-end-column="0" />
<folding>
<element signature="e#0#100279#0" expanded="false" />
<element signature="imports" expanded="false" />
<element signature="e#8691#8692#0" expanded="false" />
<element signature="e#8739#8740#0" expanded="false" />
<element signature="e#8790#8791#0" expanded="false" />
<element signature="e#8843#8844#0" expanded="false" />
<element signature="e#8947#8948#0" expanded="false" />
<element signature="e#8989#8990#0" expanded="false" />
<element signature="e#9468#9469#0" expanded="false" />
<element signature="e#9518#9519#0" expanded="false" />
<element signature="e#9591#9592#0" expanded="false" />
<element signature="e#9647#9648#0" expanded="false" />
<element signature="e#51293#51294#0" expanded="false" />
<element signature="e#51354#51355#0" expanded="false" />
<element signature="e#59864#59865#0" expanded="false" />
<element signature="e#59905#59906#0" expanded="false" />
<element signature="e#59939#59940#0" expanded="false" />
<element signature="e#59981#59982#0" expanded="false" />
<element signature="e#67589#67590#0" expanded="false" />
<element signature="e#67625#67626#0" expanded="false" />
<element signature="e#67674#67675#0" expanded="false" />
<element signature="e#67733#67734#0" expanded="false" />
<element signature="e#68330#68331#0" expanded="false" />
<element signature="e#68387#68388#0" expanded="false" />
<element signature="e#81359#81360#0" expanded="false" />
<element signature="e#81428#81429#0" expanded="false" />
<element signature="e#85149#85150#0" expanded="false" />
<element signature="e#85187#85188#0" expanded="false" />
<element signature="e#85712#85713#0" expanded="false" />
<element signature="e#85765#85766#0" expanded="false" />
<element signature="e#87861#87862#0" expanded="false" />
<element signature="e#87890#87891#0" expanded="false" />
<element signature="e#89833#89834#0" expanded="false" />
<element signature="e#89875#89876#0" expanded="false" />
<element signature="e#91923#91924#0" expanded="false" />
<element signature="e#91951#91952#0" expanded="false" />
<element signature="e#91993#91994#0" expanded="false" />
<element signature="e#92024#92025#0" expanded="false" />
<element signature="e#93068#93069#0" expanded="false" />
<element signature="e#93122#93123#0" expanded="false" />
<element signature="e#93163#93164#0" expanded="false" />
<element signature="e#93222#93223#0" expanded="false" />
</folding>
<folding />
</state>
</provider>
</entry>
@ -143,7 +100,7 @@
<file leaf-file-name="AutoFillService.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/app/src/main/java/keepass2android/autofill/AutoFillService.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.33242506">
<state vertical-scroll-proportion="0.0">
<caret line="149" column="44" selection-start-line="149" selection-start-column="44" selection-end-line="149" selection-end-column="44" />
<folding>
<element signature="imports" expanded="true" />
@ -1520,21 +1477,6 @@
<sortByType />
</navigator>
<panes>
<pane id="Scratches" />
<pane id="AndroidView">
<subPane>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="java" />
<option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Gradle Scripts" />
<option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidBuildScriptsGroupNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="ProjectPane">
<subPane>
<PATH>
@ -1570,6 +1512,21 @@
</subPane>
</pane>
<pane id="Scope" />
<pane id="AndroidView">
<subPane>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="java" />
<option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="Gradle Scripts" />
<option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidBuildScriptsGroupNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="Scratches" />
<pane id="PackagesPane" />
</panes>
</component>
@ -1766,26 +1723,26 @@
<window_info id="Palette&#9;" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.3270869" sideWeight="0.4969743" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Captures" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.3270869" sideWeight="0.5030257" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32879046" sideWeight="0.52723145" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Gradle Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Build Variants" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32879046" sideWeight="0.47579426" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32879046" sideWeight="0.47276855" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Android" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32879046" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32879046" sideWeight="0.4969743" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Gradle" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24886535" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24886535" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24962178" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.3270869" sideWeight="0.4969743" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
@ -2131,50 +2088,7 @@
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="2618" column="0" selection-start-line="2618" selection-start-column="0" selection-end-line="2618" selection-end-column="0" />
<folding>
<element signature="e#0#100279#0" expanded="false" />
<element signature="imports" expanded="false" />
<element signature="e#8691#8692#0" expanded="false" />
<element signature="e#8739#8740#0" expanded="false" />
<element signature="e#8790#8791#0" expanded="false" />
<element signature="e#8843#8844#0" expanded="false" />
<element signature="e#8947#8948#0" expanded="false" />
<element signature="e#8989#8990#0" expanded="false" />
<element signature="e#9468#9469#0" expanded="false" />
<element signature="e#9518#9519#0" expanded="false" />
<element signature="e#9591#9592#0" expanded="false" />
<element signature="e#9647#9648#0" expanded="false" />
<element signature="e#51293#51294#0" expanded="false" />
<element signature="e#51354#51355#0" expanded="false" />
<element signature="e#59864#59865#0" expanded="false" />
<element signature="e#59905#59906#0" expanded="false" />
<element signature="e#59939#59940#0" expanded="false" />
<element signature="e#59981#59982#0" expanded="false" />
<element signature="e#67589#67590#0" expanded="false" />
<element signature="e#67625#67626#0" expanded="false" />
<element signature="e#67674#67675#0" expanded="false" />
<element signature="e#67733#67734#0" expanded="false" />
<element signature="e#68330#68331#0" expanded="false" />
<element signature="e#68387#68388#0" expanded="false" />
<element signature="e#81359#81360#0" expanded="false" />
<element signature="e#81428#81429#0" expanded="false" />
<element signature="e#85149#85150#0" expanded="false" />
<element signature="e#85187#85188#0" expanded="false" />
<element signature="e#85712#85713#0" expanded="false" />
<element signature="e#85765#85766#0" expanded="false" />
<element signature="e#87861#87862#0" expanded="false" />
<element signature="e#87890#87891#0" expanded="false" />
<element signature="e#89833#89834#0" expanded="false" />
<element signature="e#89875#89876#0" expanded="false" />
<element signature="e#91923#91924#0" expanded="false" />
<element signature="e#91951#91952#0" expanded="false" />
<element signature="e#91993#91994#0" expanded="false" />
<element signature="e#92024#92025#0" expanded="false" />
<element signature="e#93068#93069#0" expanded="false" />
<element signature="e#93122#93123#0" expanded="false" />
<element signature="e#93163#93164#0" expanded="false" />
<element signature="e#93222#93223#0" expanded="false" />
</folding>
<folding />
</state>
</provider>
</entry>
@ -2228,7 +2142,7 @@
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/keepass2android/autofill/AutoFillService.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.33242506">
<state vertical-scroll-proportion="0.0">
<caret line="149" column="44" selection-start-line="149" selection-start-column="44" selection-end-line="149" selection-end-column="44" />
<folding>
<element signature="imports" expanded="true" />

View File

@ -549,20 +549,18 @@ namespace keepass2android
switch (validationMode)
{
case ValidationMode.Ignore:
return (sender, certificate, chain, errors) => true;
case ValidationMode.Warn:
return (sender, certificate, chain, errors) =>
{
ShowToast(Application.Context.GetString(Resource.String.CertificateWarning,
if (errors != SslPolicyErrors.None)
ShowToast(Application.Context.GetString(Resource.String.CertificateWarning,
new Java.Lang.Object[]
{
errors.ToString()
}));
return true;
};
case ValidationMode.Warn:
return (sender, certificate, chain, errors) =>
{
return true;
};
case ValidationMode.Error:
return (sender, certificate, chain, errors) =>

View File

@ -273,7 +273,7 @@ namespace keepass2android
return null;
var ioc = new IOConnectionInfo
{
Path = cursor.GetString(cursor
Path = cursor.GetString(cursor
.GetColumnIndexOrThrow(KeyFileFilename)),
UserName = cursor.GetString(cursor
.GetColumnIndexOrThrow(KeyFileUsername)),
@ -284,7 +284,10 @@ namespace keepass2android
CredProtMode = IOCredProtMode.Obf
};
ioc.Obfuscate(false);
ioc.Obfuscate(false);
App.Kp2a.GetFileStorage(ioc).ResolveAccount(ioc);
return ioc;
}
}

View File

@ -218,7 +218,9 @@ namespace keepass2android
String path = cursor.GetString(columnIndex);
TextView textView = (TextView)view;
IOConnectionInfo ioc = new IOConnectionInfo {Path = path};
textView.Text = _app.GetFileStorage(ioc).GetDisplayName(ioc);
var fileStorage = _app.GetFileStorage(ioc);
fileStorage.ResolveAccount(ioc);
textView.Text = fileStorage.GetDisplayName(ioc);
textView.Tag = ioc.Path;
return true;
}

1
src/netftpandroid Submodule

@ -0,0 +1 @@
Subproject commit 961c87189241f38332a2dc0564eacf8bddfd37a6