+ public IdentityManagerApp (bool headless, bool use_flat_file_store) {
+ use_flat_file_store |= UserForcesFlatFileStore();
+#if GNOME_KEYRING
+ bool keyring_available = (!use_flat_file_store) && GnomeKeyring.is_available();
+#else
+ bool keyring_available = false;
+#endif
+ IIdentityCardStore.StoreType store_type;
+ if (headless || use_flat_file_store || !keyring_available)
+ store_type = IIdentityCardStore.StoreType.FLAT_FILE;
+ else
+ store_type = IIdentityCardStore.StoreType.KEYRING;
+
+ model = new IdentityManagerModel(this, store_type);
+ /* if headless, but we have nothing in the flat file store
+ * and keyring is available, switch to keyring */
+ if (headless && keyring_available && !use_flat_file_store && !model.HasNonTrivialIdentities())
+ model.set_store_type(IIdentityCardStore.StoreType.KEYRING);
+