diff --git a/app/src/main/java/com/beemdevelopment/aegis/AegisBackupAgent.java b/app/src/main/java/com/beemdevelopment/aegis/AegisBackupAgent.java index df989a7d..dc7dd002 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/AegisBackupAgent.java +++ b/app/src/main/java/com/beemdevelopment/aegis/AegisBackupAgent.java @@ -9,7 +9,6 @@ import android.os.ParcelFileDescriptor; import android.util.Log; import com.beemdevelopment.aegis.util.IOUtils; -import com.beemdevelopment.aegis.vault.VaultManager; import com.beemdevelopment.aegis.vault.VaultRepository; import java.io.File; @@ -17,24 +16,17 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; -import dagger.hilt.InstallIn; -import dagger.hilt.android.EarlyEntryPoint; -import dagger.hilt.android.EarlyEntryPoints; -import dagger.hilt.components.SingletonComponent; - public class AegisBackupAgent extends BackupAgent { private static final String TAG = AegisBackupAgent.class.getSimpleName(); - private VaultManager _vaultManager; private Preferences _prefs; @Override public void onCreate() { super.onCreate(); - EntryPoint entryPoint = EarlyEntryPoints.get(this, EntryPoint.class); - _vaultManager = entryPoint.getVaultManager(); - _prefs = entryPoint.getPreferences(); + // cannot use injection with Dagger Hilt here, because the app is launched in a restricted mode on restore + _prefs = new Preferences(this); } @Override @@ -57,7 +49,7 @@ public class AegisBackupAgent extends BackupAgent { createBackupDir(); File vaultBackupFile = getVaultBackupFile(); try { - _vaultManager.getVault().backupTo(vaultBackupFile); + VaultRepository.copyFileTo(this, vaultBackupFile); } catch (IOException e) { Log.e(TAG, String.format("onFullBackup() failed: %s", e)); deleteBackupDir(); @@ -128,11 +120,4 @@ public class AegisBackupAgent extends BackupAgent { private File getVaultBackupFile() { return new File(new File(getFilesDir(), "backup"), VaultRepository.FILENAME); } - - @EarlyEntryPoint - @InstallIn(SingletonComponent.class) - interface EntryPoint { - Preferences getPreferences(); - VaultManager getVaultManager(); - } } diff --git a/app/src/main/java/com/beemdevelopment/aegis/vault/VaultManager.java b/app/src/main/java/com/beemdevelopment/aegis/vault/VaultManager.java index 7d92bda3..375a2ef6 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/vault/VaultManager.java +++ b/app/src/main/java/com/beemdevelopment/aegis/vault/VaultManager.java @@ -189,7 +189,7 @@ public class VaultManager { } File tempFile = File.createTempFile(VaultBackupManager.FILENAME_PREFIX, ".json", dir); - getVault().backupTo(tempFile); + VaultRepository.copyFileTo(_context, tempFile); _backups.scheduleBackup(tempFile, _prefs.getBackupsLocation(), _prefs.getBackupsVersionCount()); } catch (IOException e) { throw new VaultRepositoryException(e); diff --git a/app/src/main/java/com/beemdevelopment/aegis/vault/VaultRepository.java b/app/src/main/java/com/beemdevelopment/aegis/vault/VaultRepository.java index aa857803..f888e6ad 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/vault/VaultRepository.java +++ b/app/src/main/java/com/beemdevelopment/aegis/vault/VaultRepository.java @@ -107,6 +107,13 @@ public class VaultRepository { return new VaultRepository(context, vault, creds); } + public static void copyFileTo(Context context, File destFile) throws IOException { + try (InputStream inStream = VaultRepository.getAtomicFile(context).openRead(); + OutputStream outStream = new FileOutputStream(destFile)) { + IOUtils.copy(inStream, outStream); + } + } + void save() throws VaultRepositoryException { try { JSONObject obj = _vault.toJson(); @@ -172,13 +179,6 @@ public class VaultRepository { } } - public void backupTo(File destFile) throws IOException { - try (InputStream inStream = getAtomicFile(_context).openRead(); - OutputStream outStream = new FileOutputStream(destFile)) { - IOUtils.copy(inStream, outStream); - } - } - public void addEntry(VaultEntry entry) { _vault.getEntries().add(entry); }