Skip to content

Commit

Permalink
初始化中 复制文件卡死
Browse files Browse the repository at this point in the history
  • Loading branch information
DND163 authored and Bambooin committed Aug 15, 2021
1 parent a02908e commit b369f4f
Showing 1 changed file with 27 additions and 7 deletions.
34 changes: 27 additions & 7 deletions app/src/main/java/com/osfans/trime/setup/Config.java
Expand Up @@ -36,14 +36,12 @@
import android.util.TypedValue;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.blankj.utilcode.util.ResourceUtils;
import com.osfans.trime.Rime;
import com.osfans.trime.ime.core.Preferences;
import com.osfans.trime.ime.enums.WindowsPositionType;
import com.osfans.trime.ime.keyboard.Key;
import com.osfans.trime.util.AppVersionUtils;
import java.io.File;
import java.io.FilenameFilter;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
Expand Down Expand Up @@ -223,10 +221,7 @@ public boolean copyFileOrDir(@NonNull Context context, String path, boolean over
final String[] assets = assetManager.list(assetPath);
if (assets.length == 0) {
// Files
if (overwrite)
ResourceUtils.copyFileFromAssets(
"rime", path.endsWith(".bin") ? getUserDataDir() : getSharedDataDir());
// copyFile(context, path, overwrite);
copyFile(context, path, overwrite);
} else {
// Dirs
final File dir = new File(getSharedDataDir(), path);
Expand All @@ -244,6 +239,31 @@ public boolean copyFileOrDir(@NonNull Context context, String path, boolean over
return true;
}

private boolean copyFile(Context context, String filename, boolean overwrite) {
final AssetManager assetManager = context.getAssets();
InputStream in;
OutputStream out;
try {
final String assetPath = new File(RIME, filename).getPath();
in = assetManager.open(assetPath);
final String newFileName = new File(getSharedDataDir(), filename).getPath();
if (new File(newFileName).exists() && !overwrite) return true;
out = new FileOutputStream(newFileName);
final byte[] buffer = new byte[1024];
int read;
while ((read = in.read(buffer)) != -1) {
out.write(buffer, 0, read);
}
in.close();
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}

private void deployTheme(Context context) {
if (getUserDataDir().contentEquals(getSharedDataDir())) return; // 相同文件夾不部署主題
final String[] configs = getThemeKeys(context, false);
Expand Down

0 comments on commit b369f4f

Please sign in to comment.