コード例 #1
0
ファイル: SaveDB.cs プロジェクト: pythe/wristpass
 public SaveDb(Context ctx, IKp2aApp app, OnFinish finish, bool dontSave)
     : base(finish)
 {
     _ctx = ctx;
     _app = app;
     _dontSave = dontSave;
 }
コード例 #2
0
ファイル: UpdateEntry.cs プロジェクト: pythe/wristpass
 public AfterUpdate(PwEntry backup, PwEntry updatedEntry, IKp2aApp app, OnFinish finish)
     : base(finish)
 {
     _backup = backup;
     _updatedEntry = updatedEntry;
     _app = app;
 }
コード例 #3
0
ファイル: BuiltInFileStorage.cs プロジェクト: pythe/wristpass
 public BuiltInFileStorage(IKp2aApp app)
 {
     _app = app;
     //use the obsolute CertificatePolicy because the ServerCertificateValidationCallback isn't called in Mono for Android (?)
     //ServicePointManager.CertificatePolicy = new CertificatePolicity(app);
     IOConnection.CertificateValidationCallback = app.CertificateValidationCallback;
 }
コード例 #4
0
ファイル: DeleteEntry.cs プロジェクト: pythe/wristpass
 public DeleteEntry(Context ctx, IKp2aApp app, PwEntry entry, OnFinish finish)
     : base(finish, app)
 {
     Ctx = ctx;
     Db = app.GetDb();
     _entry = entry;
 }
コード例 #5
0
ファイル: SaveDB.cs プロジェクト: pythe/wristpass
 /// <summary>
 /// Constructor for sync
 /// </summary>
 /// <param name="ctx"></param>
 /// <param name="app"></param>
 /// <param name="finish"></param>
 /// <param name="dontSave"></param>
 /// <param name="streamForOrigFile">Stream for reading the data from the (changed) original location</param>
 public SaveDb(Context ctx, IKp2aApp app, OnFinish finish, bool dontSave, Stream streamForOrigFile)
     : base(finish)
 {
     _ctx = ctx;
     _app = app;
     _dontSave = dontSave;
     _streamForOrigFile = streamForOrigFile;
 }
コード例 #6
0
ファイル: MoveElement.cs プロジェクト: pythe/wristpass
 public MoveElement(IStructureItem elementToMove, PwGroup targetGroup, Context ctx, IKp2aApp app, OnFinish finish)
     : base(finish)
 {
     _elementToMove = elementToMove;
     _targetGroup = targetGroup;
     _ctx = ctx;
     _app = app;
 }
コード例 #7
0
ファイル: CreateDB.cs プロジェクト: pythe/wristpass
 public CreateDb(IKp2aApp app, Context ctx, IOConnectionInfo ioc, OnFinish finish, bool dontSave)
     : base(finish)
 {
     _ctx = ctx;
     _ioc = ioc;
     _dontSave = dontSave;
     _app = app;
 }
コード例 #8
0
ファイル: UpdateEntry.cs プロジェクト: pythe/wristpass
        public UpdateEntry(Context ctx, IKp2aApp app, PwEntry oldE, PwEntry newE, OnFinish finish)
            : base(finish)
        {
            _ctx = ctx;
            _app = app;

            _onFinishToRun = new AfterUpdate(oldE, newE, app, finish);
        }
コード例 #9
0
ファイル: AddEntry.cs プロジェクト: pythe/wristpass
        protected AddEntry(Context ctx, IKp2aApp app, PwEntry entry, PwGroup parentGroup, OnFinish finish)
            : base(finish)
        {
            _ctx = ctx;
            _parentGroup = parentGroup;
            _app = app;
            _entry = entry;

            _onFinishToRun = new AfterAdd(app.GetDb(), entry, OnFinishToRun);
        }
コード例 #10
0
ファイル: LoadDB.cs プロジェクト: pythe/wristpass
        public LoadDb(IKp2aApp app, IOConnectionInfo ioc, Task<MemoryStream> databaseData, CompositeKey compositeKey, String keyfileOrProvider, OnFinish finish)
            : base(finish)
        {
            _app = app;
            _ioc = ioc;
            _databaseData = databaseData;
            _compositeKey = compositeKey;
            _keyfileOrProvider = keyfileOrProvider;

            _rememberKeyfile = app.GetBooleanPreference(PreferenceKey.remember_keyfile);
        }
コード例 #11
0
ファイル: EditGroup.cs プロジェクト: pythe/wristpass
        public EditGroup(Context ctx, IKp2aApp app, String name, PwIcon iconid, PwUuid customIconId, PwGroup group, OnFinish finish)
            : base(finish)
        {
            _ctx = ctx;
            _name = name;
            _iconId = iconid;
            Group = group;
            _customIconId = customIconId;
            _app = app;

            _onFinishToRun = new AfterEdit(this, OnFinishToRun);
        }
コード例 #12
0
ファイル: AddGroup.cs プロジェクト: pythe/wristpass
        private AddGroup(Context ctx, IKp2aApp app, String name, int iconid, PwGroup parent, OnFinish finish, bool dontSave)
            : base(finish)
        {
            _ctx = ctx;
            _name = name;
            _iconId = iconid;
            Parent = parent;
            DontSave = dontSave;
            _app = app;

            _onFinishToRun = new AfterAdd(this, OnFinishToRun);
        }
コード例 #13
0
ファイル: ProgressTask.cs プロジェクト: pythe/wristpass
        public ProgressTask(IKp2aApp app, Context ctx, RunnableOnFinish task)
        {
            _task = task;
            _handler = app.UiThreadHandler;
            _app = app;

            // Show process dialog
            _progressDialog = app.CreateProgressDialog(ctx);
            _progressDialog.SetTitle(_app.GetResourceString(UiStringKey.progress_title));
            _progressDialog.SetMessage("Initializing...");

            // Set code to run when this is finished
            _task.OnFinishToRun = new AfterTask(task.OnFinishToRun, _handler, _progressDialog);
            _task.SetStatusLogger(new ProgressDialogStatusLogger(_app, _handler, _progressDialog));
        }
コード例 #14
0
ファイル: TestBase.cs プロジェクト: pythe/wristpass
 public static bool TrySaveDatabase(IKp2aApp app)
 {
     bool saveSuccesful = false;
     SaveDb save = new SaveDb(Application.Context, app, new ActionOnFinish((success, message) =>
         {
             saveSuccesful = success;
             if (!success)
             {
                 Kp2aLog.Log("Error during TestBase.SaveDatabase: " + message);
             }
         }), false);
     save.Run();
     save.JoinWorkerThread();
     return saveSuccesful;
 }
コード例 #15
0
ファイル: IoUtil.cs プロジェクト: pythe/wristpass
        public static void Copy(IOConnectionInfo targetIoc, IOConnectionInfo sourceIoc, IKp2aApp app)
        {
            IFileStorage sourceStorage = app.GetFileStorage(sourceIoc, false); //don't cache source. file won't be used ever again
            IFileStorage targetStorage = app.GetFileStorage(targetIoc);

            using (
                var writeTransaction = targetStorage.OpenWriteTransaction(targetIoc,
                                                                          app.GetBooleanPreference(
                                                                              PreferenceKey.UseFileTransactions)))
            {
                using (var writeStream = writeTransaction.OpenFile())
                {
                    sourceStorage.OpenFileForRead(sourceIoc).CopyTo(writeStream);
                }
                writeTransaction.CommitWrite();
            }
        }
コード例 #16
0
ファイル: SearchDbHelper.cs プロジェクト: pythe/wristpass
 public SearchDbHelper(IKp2aApp app)
 {
     _app = app;
 }
コード例 #17
0
 public SkyDriveFileStorage(Context ctx, IKp2aApp app)
     : base(new Keepass2android.Javafilestorage.SkyDriveFileStorage(ClientId, ctx), app)
 {
 }
コード例 #18
0
 public LegacyFtpStorage(IKp2aApp app) : base(app)
 {
 }
コード例 #19
0
 public DropboxFileStorage(Context ctx, IKp2aApp app) :
     base(new Keepass2android.Javafilestorage.DropboxV2Storage(ctx, AppKey, AppSecret), app)
 {
 }
コード例 #20
0
 public static AddEntry GetInstance(Activity ctx, IKp2aApp app, PwEntry entry, PwGroup parentGroup, OnFinish finish)
 {
     return(new AddEntry(ctx, app, entry, parentGroup, finish));
 }
コード例 #21
0
 public CheckDatabaseForChanges(Activity context, IKp2aApp app, OnFinish finish)
     : base(context, finish)
 {
     _context = context;
     _app     = app;
 }
コード例 #22
0
 protected DeleteRunnable(Activity activity, OnFinish finish, IKp2aApp app)
     : base(activity, finish)
 {
     App = app;
 }
コード例 #23
0
ファイル: GDriveFileStorage.cs プロジェクト: pythe/wristpass
 public GoogleDriveFileStorage(Context ctx, IKp2aApp app)
     : base(new Keepass2android.Javafilestorage.GoogleDriveFileStorage(), app)
 {
 }
コード例 #24
0
 public MyCursorAdapter(FileSelectActivity activity, ICursor c, IKp2aApp app) : base(activity, c)
 {
     _activity = activity;
     _app      = app;
 }
コード例 #25
0
 public AfterUpdate(Activity activity, PwEntry backup, PwEntry updatedEntry, IKp2aApp app, OnFinish finish) : base(activity, finish)
 {
     _backup       = backup;
     _updatedEntry = updatedEntry;
     _app          = app;
 }
コード例 #26
0
 public static bool ContainsAllTemplates(IKp2aApp app)
 {
     return(TemplateEntries.All(t => app.GetDb().Entries.ContainsKey(t.Uuid)));
 }
コード例 #27
0
        public DeleteMultipleItemsFromOneDatabase(Activity activity, Database db, List <IStructureItem> elementsToDelete, OnFinish finish, IKp2aApp app)
            : base(activity, finish, app)
        {
            _elementsToDelete = elementsToDelete;
            SetMembers(activity, db);

            //determine once. The property is queried for each delete operation, but might return false
            //after one entry/group is deleted (and thus in recycle bin and thus can't be recycled anymore)
            _canRecycle             = DetermineCanRecycle();
            ShowDatabaseIocInStatus = true;
        }
コード例 #28
0
ファイル: AddGroup.cs プロジェクト: pythe/wristpass
 public static AddGroup GetInstance(Context ctx, IKp2aApp app, String name, int iconid, PwGroup parent, OnFinish finish, bool dontSave)
 {
     return new AddGroup(ctx, app, name, iconid, parent, finish, dontSave);
 }
コード例 #29
0
 public TestControllableSelectStorageLocationActivity(IKp2aApp app)
     : base(app)
 {
     _app = app;
     StartFileStorageSelection(RequestCodeFileStorageSelectionForPrimarySelect, true, false);
 }
コード例 #30
0
 public ExportDb(Activity activity, IKp2aApp app, OnFinish onFinish, FileFormatProvider fileFormat, IOConnectionInfo targetIoc) : base(activity, onFinish)
 {
     _app             = app;
     this._fileFormat = fileFormat;
     _targetIoc       = targetIoc;
 }
コード例 #31
0
ファイル: JavaFileStorage.cs プロジェクト: pythe/wristpass
 public JavaFileStorage(IJavaFileStorage jfs, IKp2aApp app)
 {
     _jfs = jfs;
     _app = app;
 }
コード例 #32
0
 public SynchronizeCachedDatabase(Context context, IKp2aApp app, OnFinish finish)
     : base(finish)
 {
     _context = context;
     _app     = app;
 }
コード例 #33
0
        //creates a local ioc where the sourceIoc can be stored to
        public static IOConnectionInfo GetInternalIoc(IOConnectionInfo sourceIoc, Context ctx, IKp2aApp app)
        {
            Java.IO.File internalDirectory = IoUtil.GetInternalDirectory(ctx);
            var          filestorage       = app.GetFileStorage(sourceIoc);

            string targetPath = filestorage.GetFilenameWithoutPathAndExt(sourceIoc);

            targetPath = targetPath.Trim("|\\?*<\":>+[]/'".ToCharArray());
            if (targetPath == "")
            {
                targetPath = "internal";
            }
            if (new File(internalDirectory, targetPath).Exists())
            {
                int c   = 1;
                var ext = UrlUtil.GetExtension(targetPath);
                var filenameWithoutExt = UrlUtil.StripExtension(targetPath);
                do
                {
                    c++;
                    targetPath = filenameWithoutExt + c;
                    if (!String.IsNullOrEmpty(ext))
                    {
                        targetPath += "." + ext;
                    }
                } while (new File(internalDirectory, targetPath).Exists());
            }
            return(IOConnectionInfo.FromPath(new File(internalDirectory, targetPath).CanonicalPath));
        }
コード例 #34
0
 public SynchronizeCachedDatabase(Context context, IKp2aApp app, OnFinish finish)
     : base(finish)
 {
     _context = context;
     _app = app;
 }
コード例 #35
0
ファイル: DeleteEntry.cs プロジェクト: 77rusa/README
 public DeleteEntry(Activity activiy, IKp2aApp app, PwEntry entry, OnFinish finish) : base(activiy, finish, app)
 {
     Ctx    = activiy;
     Db     = app.FindDatabaseForElement(entry);
     _entry = entry;
 }
コード例 #36
0
        public static IOConnectionInfo ImportFileToInternalDirectory(IOConnectionInfo sourceIoc, Context ctx, IKp2aApp app)
        {
            var targetIoc = GetInternalIoc(sourceIoc, ctx, app);


            IoUtil.Copy(targetIoc, sourceIoc, app);
            return(targetIoc);
        }
コード例 #37
0
 public GoogleDriveFileStorage(Context ctx, IKp2aApp app) :
     base(new Keepass2android.Javafilestorage.GoogleDriveFileStorage(), app)
 {
 }
コード例 #38
0
 public SearchDbHelper(IKp2aApp app)
 {
     _app = app;
 }
コード例 #39
0
 public LocalFileStorage(IKp2aApp app)
     : base(app)
 {
 }
コード例 #40
0
ファイル: DropboxFileStorage.cs プロジェクト: pythe/wristpass
 public DropboxFileStorage(Context ctx, IKp2aApp app)
     : base(new Keepass2android.Javafilestorage.DropboxFileStorage(ctx, AppKey, AppSecret), app)
 {
 }
コード例 #41
0
 public LegacyWebDavStorage(IKp2aApp app) : base(app)
 {
 }
コード例 #42
0
 public OneDriveFileStorage(Context ctx, IKp2aApp app) :
     base(new Keepass2android.Javafilestorage.OneDriveStorage(ctx, ClientId), app)
 {
 }
コード例 #43
0
 public MoveElements(List <IStructureItem> elementsToMove, PwGroup targetGroup, Activity ctx, IKp2aApp app, OnFinish finish) : base(ctx, finish)
 {
     _elementsToMove = elementsToMove;
     _targetGroup    = targetGroup;
     _ctx            = ctx;
     _app            = app;
 }
コード例 #44
0
 public SelectStorageLocationActivityBase(IKp2aApp app)
 {
     _app = app;
 }
コード例 #45
0
 public ProgressDialogStatusLogger(IKp2aApp app, Handler handler, IProgressDialog pd)
 {
     _app = app;
     _progressDialog = pd;
     _handler = handler;
 }
コード例 #46
0
        public void TestLoadEditSaveWhenModified()
        {
            //create the default database:
            IKp2aApp app = SetupAppWithDefaultDatabase();

            IOConnection.DeleteFile(new IOConnectionInfo {
                Path = DefaultFilename
            });
            //save it and reload it so we have a base version
            SaveDatabase(app);
            app = LoadDatabase(DefaultFilename, DefaultPassword, DefaultKeyfile);

            foreach (var group in app.GetDb().KpDatabase.RootGroup.Groups)
            {
                Kp2aLog.Log("app c: " + group.Name);
            }

            //load once more:
            var app2 = LoadDatabase(DefaultFilename, DefaultPassword, DefaultKeyfile);

            //modifiy once:
            PwGroup group2 = new PwGroup(true, true, "TestGroup2", PwIcon.Apple);

            app2.GetDb().KpDatabase.RootGroup.AddGroup(group2, true);

            foreach (var group in app.GetDb().KpDatabase.RootGroup.Groups)
            {
                Kp2aLog.Log("app b: " + group.Name);
            }

            SaveDatabase(app2);

            _testCacheSupervisor.Reset();

            foreach (var group in app.GetDb().KpDatabase.RootGroup.Groups)
            {
                Kp2aLog.Log("app d: " + group.Name);
            }
            Assert.IsNull(((TestKp2aApp)app).LastYesNoCancelQuestionTitle);
            _testCacheSupervisor.AssertNoCall();

            //modify the database by adding a group:
            PwGroup group1 = new PwGroup(true, true, "TestGroup", PwIcon.Apple);

            app.GetDb().KpDatabase.RootGroup.AddGroup(group1, true);

            foreach (var group in app.GetDb().KpDatabase.RootGroup.Groups)
            {
                Kp2aLog.Log("app a: " + group.Name);
            }


            //save the database again:
            _testCacheSupervisor.Reset();
            SaveDatabase(app);
            Assert.AreEqual(((TestKp2aApp)app).LastYesNoCancelQuestionTitle, UiStringKey.TitleSyncQuestion);
            _testCacheSupervisor.AssertNoCall();


            //load database to a new app instance:
            IKp2aApp resultApp = LoadDatabase(DefaultFilename, DefaultPassword, DefaultKeyfile);

            app2.GetDb().KpDatabase.RootGroup.AddGroup(group1, true);
            foreach (var group in app.GetDb().KpDatabase.RootGroup.Groups)
            {
                Kp2aLog.Log("app: " + group.Name);
            }

            foreach (var group in resultApp.GetDb().KpDatabase.RootGroup.Groups)
            {
                Kp2aLog.Log("resultApp: " + group.Name);
            }

            //ensure the change was saved:
            AssertDatabasesAreEqual(app2.GetDb().KpDatabase, resultApp.GetDb().KpDatabase);
        }
コード例 #47
0
 public WebDavFileStorage(IKp2aApp app) : base(new Keepass2android.Javafilestorage.WebDavStorage(app.CertificateErrorHandler), app)
 {
 }
コード例 #48
0
 public SftpFileStorage(IKp2aApp app) :
     base(new Keepass2android.Javafilestorage.SftpStorage(), app)
 {
 }
コード例 #49
0
ファイル: TestFileStorage.cs プロジェクト: pythe/wristpass
 public TestFileStorage(IKp2aApp app)
 {
     _builtIn = new BuiltInFileStorage(app);
 }
コード例 #50
0
 public Database(IDrawableFactory drawableFactory, IKp2aApp app)
 {
     DrawableFactory = drawableFactory;
     _app            = app;
     CanWrite        = true;      //default
 }
コード例 #51
0
        public static void Copy(IOConnectionInfo targetIoc, IOConnectionInfo sourceIoc, IKp2aApp app)
        {
            IFileStorage sourceStorage = app.GetFileStorage(sourceIoc, false);             //don't cache source. file won't be used ever again
            IFileStorage targetStorage = app.GetFileStorage(targetIoc);

            using (
                var writeTransaction = targetStorage.OpenWriteTransaction(targetIoc,
                                                                          app.GetBooleanPreference(
                                                                              PreferenceKey.UseFileTransactions)))
            {
                using (var writeStream = writeTransaction.OpenFile())
                {
                    sourceStorage.OpenFileForRead(sourceIoc).CopyTo(writeStream);
                }
                writeTransaction.CommitWrite();
            }
        }
コード例 #52
0
ファイル: DeleteRunnable.cs プロジェクト: pythe/wristpass
 protected DeleteRunnable(OnFinish finish, IKp2aApp app)
     : base(finish)
 {
     App = app;
 }
コード例 #53
0
 public SynchronizeCachedDatabase(Activity context, IKp2aApp app, OnFinish finish)
     : base(context, finish)
 {
     _context = context;
     _app     = app;
 }
コード例 #54
0
 public AfterAdd(Activity activity, Database db, PwEntry entry, IKp2aApp app, OnFinish finish) : base(activity, finish)
 {
     _db    = db;
     _entry = entry;
     _app   = app;
 }
コード例 #55
0
ファイル: KdbDatabaseFormat.cs プロジェクト: pythe/wristpass
 public KdbDatabaseFormat(IKp2aApp app)
 {
     _app = app;
 }
コード例 #56
0
 public static AddGroup GetInstance(Context ctx, IKp2aApp app, string name, int iconid, PwUuid groupCustomIconId, PwGroup parent, OnFinish finish, bool dontSave)
 {
     return(new AddGroup(ctx, app, name, iconid, groupCustomIconId, parent, finish, dontSave));
 }
コード例 #57
0
 public ExportDb(IKp2aApp app, OnFinish onFinish, FileFormatProvider fileFormat, IOConnectionInfo targetIoc)
     : base(onFinish)
 {
     _app = app;
     this._fileFormat = fileFormat;
     _targetIoc = targetIoc;
 }
コード例 #58
0
 public ProgressDialogStatusLogger(IKp2aApp app, Handler handler, IProgressDialog pd)
 {
     _app            = app;
     _progressDialog = pd;
     _handler        = handler;
 }
コード例 #59
0
ファイル: AddEntry.cs プロジェクト: pythe/wristpass
 public static AddEntry GetInstance(Context ctx, IKp2aApp app, PwEntry entry, PwGroup parentGroup, OnFinish finish)
 {
     return new AddEntry(ctx, app, entry, parentGroup, finish);
 }
コード例 #60
0
ファイル: PCloudFileStorage.cs プロジェクト: 77rusa/README
 public PCloudFileStorage(Context ctx, IKp2aApp app) :
     base(new Keepass2android.Javafilestorage.PCloudFileStorage(ctx, ClientId), app)
 {
 }