bug fix: prepareFileUsage didn't work when file was cached but device offline
This commit is contained in:
@@ -169,7 +169,7 @@ namespace keepass2android.Io
|
||||
}
|
||||
}
|
||||
|
||||
public void PrepareFileUsage(IFileStorageSetupInitiatorActivity activity, IOConnectionInfo ioc, int requestCode)
|
||||
public void PrepareFileUsage(IFileStorageSetupInitiatorActivity activity, IOConnectionInfo ioc, int requestCode, bool alwaysReturnSuccess)
|
||||
{
|
||||
Intent intent = new Intent();
|
||||
activity.IocToIntent(intent, ioc);
|
||||
|
||||
@@ -451,9 +451,10 @@ namespace keepass2android.Io
|
||||
_cachedStorage.StartSelectFile(activity, isForSave, requestCode, protocolId);
|
||||
}
|
||||
|
||||
public void PrepareFileUsage(IFileStorageSetupInitiatorActivity activity, IOConnectionInfo ioc, int requestCode)
|
||||
public void PrepareFileUsage(IFileStorageSetupInitiatorActivity activity, IOConnectionInfo ioc, int requestCode, bool alwaysReturnSuccess)
|
||||
{
|
||||
_cachedStorage.PrepareFileUsage(activity, ioc, requestCode);
|
||||
//we try to prepare the file usage by the underlying file storage but if the ioc is cached, set the flag to ignore errors
|
||||
_cachedStorage.PrepareFileUsage(activity, ioc, requestCode, alwaysReturnSuccess || IsCached(ioc));
|
||||
}
|
||||
|
||||
public void OnCreate(IFileStorageSetupActivity activity, Bundle savedInstanceState)
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace keepass2android.Io
|
||||
public interface IFileStorageSetupInitiatorActivity
|
||||
{
|
||||
void StartSelectFileProcess(IOConnectionInfo ioc, bool isForSave, int requestCode);
|
||||
void StartFileUsageProcess(IOConnectionInfo ioc, int requestCode);
|
||||
void StartFileUsageProcess(IOConnectionInfo ioc, int requestCode, bool alwaysReturnSuccess);
|
||||
void OnImmediateResult(int requestCode, int result, Intent intent);
|
||||
|
||||
Activity Activity { get; }
|
||||
|
||||
@@ -21,6 +21,7 @@ namespace keepass2android.Io
|
||||
public static String ProcessNameFileUsageSetup = "FILE_USAGE_SETUP";
|
||||
|
||||
public static String ExtraProcessName = "EXTRA_PROCESS_NAME";
|
||||
public static String ExtraAlwaysReturnSuccess = "EXTRA_ALWAYS_RETURN_SUCCESS";
|
||||
public static String ExtraPath = "PATH";
|
||||
public static String ExtraIsForSave = "IS_FOR_SAVE";
|
||||
public static String ExtraErrorMessage = "EXTRA_ERROR_MESSAGE";
|
||||
@@ -136,8 +137,11 @@ namespace keepass2android.Io
|
||||
/// <summary>
|
||||
/// Initiates the process for choosing a file in the given file storage.
|
||||
/// The file storage should either call OnImmediateResult or StartFileUsageProcess
|
||||
/// If alwaysReturnSuccess is true, the activity should be finished with ResultCode Ok.
|
||||
/// This can make sense if a higher-level file storage has the file cached by still wants to
|
||||
/// give the cached storage the chance to initialize file access.
|
||||
/// </summary>
|
||||
void PrepareFileUsage(IFileStorageSetupInitiatorActivity activity, IOConnectionInfo ioc, int requestCode);
|
||||
void PrepareFileUsage(IFileStorageSetupInitiatorActivity activity, IOConnectionInfo ioc, int requestCode, bool alwaysReturnSuccess);
|
||||
|
||||
//Setup methods: these are called from the setup activity so the file storage can handle UI events for authorization etc.
|
||||
void OnCreate(IFileStorageSetupActivity activity, Bundle savedInstanceState);
|
||||
|
||||
@@ -98,7 +98,7 @@ namespace keepass2android.Io
|
||||
Kp2aLog.Log(e.Message);
|
||||
var ex = new Exception(e.LocalizedMessage ??
|
||||
e.Message ??
|
||||
_app.GetResourceString(UiStringKey.ErrorOcurred)+e, e);
|
||||
_app.GetResourceString(UiStringKey.ErrorOcurred)+e.GetType().Name, e);
|
||||
return ex;
|
||||
}
|
||||
|
||||
@@ -249,9 +249,9 @@ namespace keepass2android.Io
|
||||
_jfs.StartSelectFile((IJavaFileStorageFileStorageSetupInitiatorActivity) activity, isForSave, requestCode);
|
||||
}
|
||||
|
||||
public void PrepareFileUsage(IFileStorageSetupInitiatorActivity activity, IOConnectionInfo ioc, int requestCode)
|
||||
public void PrepareFileUsage(IFileStorageSetupInitiatorActivity activity, IOConnectionInfo ioc, int requestCode, Boolean alwaysReturnSuccess)
|
||||
{
|
||||
_jfs.PrepareFileUsage((IJavaFileStorageFileStorageSetupInitiatorActivity)activity, IocToPath(ioc), requestCode);
|
||||
_jfs.PrepareFileUsage((IJavaFileStorageFileStorageSetupInitiatorActivity)activity, IocToPath(ioc), requestCode, alwaysReturnSuccess);
|
||||
}
|
||||
|
||||
public void OnCreate(IFileStorageSetupActivity activity, Bundle savedInstanceState)
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>TRACE;DEBUG;EXCLUDE_TWOFISH;INCLUDE_KEYBOARD;EXCLUDE_KEYTRANSFORM;EXCLUDE_FILECHOOSER;EXCLUDE_JAVAFILESTORAGE</DefineConstants>
|
||||
<DefineConstants>TRACE;DEBUG;EXCLUDE_TWOFISH;INCLUDE_KEYBOARD;EXCLUDE_KEYTRANSFORM;INCLUDE_FILECHOOSER;INCLUDE_JAVAFILESTORAGE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
|
||||
Reference in New Issue
Block a user