import keyfile and database to NoBackup-Internal files folder instead of standard app files directory

This commit is contained in:
Philipp Crocoll
2016-04-04 21:59:36 +02:00
parent 9c45bcb090
commit 3a64e4aa2e
3 changed files with 7 additions and 5 deletions

View File

@@ -252,7 +252,8 @@ namespace keepass2android.Io
//check if we need to request the external-storage-permission at runtime
if (ioc.IsLocalFile())
{
bool requiresPermission = !ioc.Path.StartsWith(activity.Activity.FilesDir.CanonicalPath);
bool requiresPermission = !(ioc.Path.StartsWith(activity.Activity.FilesDir.CanonicalPath)
|| ioc.Path.StartsWith(activity.Activity.NoBackupFilesDir.CanonicalPath));
var extDirectory = activity.Activity.GetExternalFilesDir(null);
if ((extDirectory != null) && (ioc.Path.StartsWith(extDirectory.CanonicalPath)))

View File

@@ -53,13 +53,14 @@ namespace keepass2android.Io
try
{
File filesDir = context.FilesDir.CanonicalFile;
File noBackupDir = context.NoBackupFilesDir.CanonicalFile;
File ourFile = new File(path).CanonicalFile;
//http://www.java2s.com/Tutorial/Java/0180__File/Checkswhetherthechilddirectoryisasubdirectoryofthebasedirectory.htm
File parentFile = ourFile;
while (parentFile != null)
{
if (filesDir.Equals(parentFile))
if ((filesDir.Equals(parentFile) || noBackupDir.Equals(parentFile)))
{
return true;
}