using System; using Android.Content; using Android.OS; using KeePassLib.Serialization; using keepass2android.Io; namespace keepass2android { /// /// Interface through which Activities and the logic layer can access some app specific functionalities and Application static data /// /// This also contains methods which are UI specific and should be replacable for testing. public interface IKp2aApp { /// /// Set the flag that the database needs to be locked. /// void SetShutdown(); /// /// Returns the current database /// Database GetDb(); /// /// Tell the app that the file from ioc was opened with keyfile. /// void StoreOpenedFileAsRecent(IOConnectionInfo ioc, string keyfile); /// /// Creates a new database and returns it /// Database CreateNewDatabase(); /// /// Returns the user-displayable string identified by stringKey /// string GetResourceString(UiStringKey stringKey); /// /// Returns the value from the preferences corresponding to key /// bool GetBooleanPreference(PreferenceKey key); /// /// Asks the user the question "messageKey" with the options Yes/No/Cancel, calls the handler corresponding to the answer. /// void AskYesNoCancel(UiStringKey titleKey, UiStringKey messageKey, EventHandler yesHandler, EventHandler noHandler, EventHandler cancelHandler, Context ctx); /// /// Returns a Handler object which can run tasks on the UI thread /// Handler UiThreadHandler { get; } IProgressDialog CreateProgressDialog(Context ctx); IFileStorage GetFileStorage(IOConnectionInfo iocInfo); } }