keepass2android/src/keepass2android/fileselect/FileStorageSetupInitiatorAc...

81 lines
2.8 KiB
C#

using System;
using Android.App;
using Android.Content;
using KeePassLib.Serialization;
using keepass2android.Io;
using keepass2android.fileselect;
namespace keepass2android
{
public class FileStorageSetupInitiatorActivity:
#if !EXCLUDE_JAVAFILESTORAGE
Java.Lang.Object
,Keepass2android.Javafilestorage.IJavaFileStorageFileStorageSetupInitiatorActivity
,
#endif
IFileStorageSetupInitiatorActivity
{
private readonly Activity _activity;
private readonly Action<int, Result, Intent> _onActivityResult;
private readonly Action<string> _startManualFileSelect;
public FileStorageSetupInitiatorActivity(Activity activity,
Action<int,Result,Intent> onActivityResult,
Action<String> startManualFileSelect)
{
_activity = activity;
_onActivityResult = onActivityResult;
_startManualFileSelect = startManualFileSelect;
}
public void StartSelectFileProcess(IOConnectionInfo ioc, bool isForSave, int requestCode)
{
Kp2aLog.Log("FSSIA: StartSelectFileProcess "+ioc.Path);
Intent fileStorageSetupIntent = new Intent(_activity, typeof(FileStorageSetupActivity));
fileStorageSetupIntent.PutExtra(FileStorageSetupDefs.ExtraProcessName, FileStorageSetupDefs.ProcessNameSelectfile);
fileStorageSetupIntent.PutExtra(FileStorageSetupDefs.ExtraIsForSave, isForSave);
PasswordActivity.PutIoConnectionToIntent(ioc, fileStorageSetupIntent);
_activity.StartActivityForResult(fileStorageSetupIntent, requestCode);
}
public void StartFileUsageProcess(IOConnectionInfo ioc, int requestCode, bool alwaysReturnSuccess)
{
Intent fileStorageSetupIntent = new Intent(_activity, typeof(FileStorageSetupActivity));
fileStorageSetupIntent.PutExtra(FileStorageSetupDefs.ExtraProcessName, FileStorageSetupDefs.ProcessNameFileUsageSetup);
fileStorageSetupIntent.PutExtra(FileStorageSetupDefs.ExtraAlwaysReturnSuccess, alwaysReturnSuccess);
PasswordActivity.PutIoConnectionToIntent(ioc, fileStorageSetupIntent);
_activity.StartActivityForResult(fileStorageSetupIntent, requestCode);
}
public void OnImmediateResult(int requestCode, int result, Intent intent)
{
_onActivityResult(requestCode, (Result)result, intent);
}
public Activity Activity {
get { return _activity; }
}
public void IocToIntent(Intent intent, IOConnectionInfo ioc)
{
PasswordActivity.PutIoConnectionToIntent(ioc, intent);
}
public void PerformManualFileSelect(bool isForSave, int requestCode, string protocolId)
{
_startManualFileSelect(protocolId + "://");
}
public void StartFileUsageProcess(string path, int requestCode, bool alwaysReturnSuccess)
{
StartFileUsageProcess(new IOConnectionInfo() { Path = path }, requestCode, alwaysReturnSuccess);
}
public void StartSelectFileProcess(string p0, bool p1, int p2)
{
StartSelectFileProcess(new IOConnectionInfo() { Path = p0 }, p1, p2);
}
}
}