Skip to content

Commit

Permalink
Improve error logging, fix some issues
Browse files Browse the repository at this point in the history
  • Loading branch information
Isira-Seneviratne committed Oct 22, 2023
1 parent 8371717 commit e0bcab7
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Handler;
import android.util.Log;

import androidx.documentfile.provider.DocumentFile;

Expand Down Expand Up @@ -40,6 +41,8 @@
import ml.docilealligator.infinityforreddit.utils.SharedPreferencesUtils;

public class BackupSettings {
private static final String TAG = BackupSettings.class.getSimpleName();

public static void backupSettings(Context context, Executor executor, Handler handler,
ContentResolver contentResolver, Uri destinationDirUri,
RedditDataRoomDatabase redditDataRoomDatabase,
Expand All @@ -65,11 +68,15 @@ public static void backupSettings(Context context, Executor executor, Handler ha
if (Files.exists(backupDirPath)) {
try {
PathUtils.deleteDirectory(backupDirPath);
Files.createDirectories(backupDirPath);
} catch (IOException e) {
e.printStackTrace();
Log.e(TAG, "Error while deleting backup directory", e);
}
}
try {
Files.createDirectories(databaseDirFile);
} catch (IOException e) {
Log.e(TAG, "Error while creating backup directories", e);
}

boolean res = saveSharedPreferencesToFile(defaultSharedPreferences, backupDirPath,
SharedPreferencesUtils.DEFAULT_PREFERENCES_FILE);
Expand Down Expand Up @@ -127,7 +134,7 @@ public static void backupSettings(Context context, Executor executor, Handler ha
try {
PathUtils.deleteDirectory(backupRootDir);
} catch (IOException e) {
e.printStackTrace();
Log.e(TAG, "Error while deleting backup directory", e);
}

handler.post(() -> {
Expand All @@ -151,20 +158,22 @@ private static boolean saveSharedPreferencesToFile(SharedPreferences sharedPrefe
final var backupFile = backupDir.resolve(fileName + ".txt");
try (var output = new ObjectOutputStream(Files.newOutputStream(backupFile))) {
output.writeObject(sharedPreferences.getAll());
output.flush();
return true;
} catch (IOException e) {
e.printStackTrace();
Log.e(TAG, "Error while saving shared preferences to file " + backupFile, e);
return false;
}
}

private static boolean saveDatabaseTableToFile(String dataJson, Path backupDir, String fileName) {
try (var out = Files.newBufferedWriter(backupDir.resolve(fileName))) {
out.write(dataJson);
out.newLine();
final var backupFile = backupDir.resolve(fileName);
try (var writer = Files.newBufferedWriter(backupFile)) {
writer.write(dataJson);
writer.newLine();
return true;
} catch (IOException e) {
e.printStackTrace();
Log.e(TAG, "Error while saving database table to file " + backupFile, e);
return false;
}
}
Expand Down Expand Up @@ -207,7 +216,7 @@ private static boolean zipAndMoveToDestinationDir(Context context, ContentResolv
}
return true;
} catch (IOException e) {
e.printStackTrace();
Log.e(TAG, "Error while zipping and/or moving to destination", e);
return false;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Handler;
import android.util.Log;

import androidx.annotation.Nullable;

Expand All @@ -17,7 +18,6 @@
import org.apache.commons.io.file.PathUtils;

import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.lang.reflect.Type;
import java.nio.file.Files;
Expand All @@ -44,6 +44,8 @@
import ml.docilealligator.infinityforreddit.utils.SharedPreferencesUtils;

public class RestoreSettings {
private static final String TAG = RestoreSettings.class.getSimpleName();

@SuppressWarnings("NewApi") // StandardOpenOption is desugared for all Android versions
public static void restoreSettings(Context context, Executor executor, Handler handler,
ContentResolver contentResolver, Uri zipFileUri,
Expand Down Expand Up @@ -71,7 +73,9 @@ public static void restoreSettings(Context context, Executor executor, Handler h
return;
}

PathUtils.deleteDirectory(cachePath);
if (Files.exists(cachePath)) {
PathUtils.deleteDirectory(cachePath);
}
Files.createDirectory(cachePath);

final var zipCache = cachePath.resolve("restore.zip");
Expand Down Expand Up @@ -178,7 +182,7 @@ public static void restoreSettings(Context context, Executor executor, Handler h
}
}
} catch (IOException e) {
e.printStackTrace();
Log.e(TAG, "Error while restoring backup", e);

handler.post(() -> restoreSettingsListener.failed(context.getString(R.string.restore_settings_partially_failed)));
}
Expand Down
7 changes: 6 additions & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,12 @@ android.enableJetifier=true
android.nonFinalResIds=false
android.nonTransitiveRClass=false
android.useAndroidX=true
org.gradle.jvmargs=-Xmx2048m

# Avoids issues with ButterKnife on JDK 17
org.gradle.jvmargs=-Xmx2048m \
--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED \
--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED \
--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
Expand Down

0 comments on commit e0bcab7

Please sign in to comment.