Do not delete dictionary when downloading

Julien LepillerSun Jul 24 16:48:34+0200 2022

246b72e

Do not delete dictionary when downloading

app/src/main/java/eu/lepiller/nani/DictionaryDownloadService.java

256256
                    File temporaryFile = e.getValue().first;
257257
                    File cacheFile = e.getValue().second;
258258
259-
                    boolean newFile = downloadSha256(new URL(uri + ".sha256"), new File(cacheFile + ".sha256"));
259+
                    boolean newFile = downloadSha256(new URL(uri + ".sha256"), new File(temporaryFile + ".sha256"));
260260
                    if(newFile) {
261-
                        d.remove();
261+
                        d.removeTemporary();
262262
                    }
263263
264264
                    long expectedFileLength = getRange(new URL(uri));

app/src/main/java/eu/lepiller/nani/dictionary/Dictionary.java

55
import android.graphics.Canvas;
66
import android.graphics.drawable.BitmapDrawable;
77
import android.graphics.drawable.Drawable;
8+
import android.util.Log;
89
import android.util.Pair;
910
1011
import androidx.core.content.res.ResourcesCompat;

125126
126127
    abstract public void remove();
127128
129+
    public void removeTemporary() {
130+
        if(getTemporaryFile().exists())
131+
            if(!getTemporaryFile().delete())
132+
                Log.w("DICTIONARY", getTemporaryFile() + " was not deleted as expected.");
133+
    }
134+
128135
    public static String readSha256FromFile(File file) throws IOException {
129136
        StringBuilder sb = new StringBuilder();
130137
        char[] data = new char[4096];

app/src/main/java/eu/lepiller/nani/dictionary/RadicalDict.java

3535
        radicalStrokeCount.clear();
3636
        radicals.clear();
3737
    }
38+
3839
    private void fillStrokeCount(RandomAccessFile file) throws IOException{
3940
        int size = file.readShort();
4041
        for(int i=0; i<size; i++) {