Allow users to specify a custom path to search/save toi #40

This commit is contained in:
mhutti1 2017-05-20 20:55:09 +02:00 committed by Isaac Hutt
parent 354b34e7c0
commit ef2ceed7e1
3 changed files with 16 additions and 12 deletions

View File

@ -32,7 +32,7 @@ dependencies {
compile project(":kiwixlib") compile project(":kiwixlib")
// Storage Devices // Storage Devices
compile 'eu.mhutti1.utils.storage:android-storage-devices:0.5.0' compile 'eu.mhutti1.utils.storage:android-storage-devices:0.6.1'
// Android Support // Android Support
compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support:appcompat-v7:25.3.1'

View File

@ -55,10 +55,10 @@ public class FileSearch {
this.listener = listener; this.listener = listener;
} }
public void scan() { public void scan(String defaultPath) {
// Start custom file search // Start custom file search
new Thread(() -> { new Thread(() -> {
scanFileSystem(); scanFileSystem(defaultPath);
fileSystemScanCompleted = true; fileSystemScanCompleted = true;
checkCompleted(); checkCompleted();
}).start(); }).start();
@ -99,16 +99,16 @@ public class FileSearch {
} }
// Scan through the file system and find all the files with .zim and .zimaa extensions // Scan through the file system and find all the files with .zim and .zimaa extensions
public void scanFileSystem() { public void scanFileSystem(String defaultPath) {
FilenameFilter[] filter = new FilenameFilter[zimFiles.length]; FilenameFilter[] filter = new FilenameFilter[zimFiles.length];
// Search all external directories that we can find. // Search all external directories that we can find.
String[] tempRoots = new String[StorageDeviceUtils.getStorageDevices((Activity) context, false).size() + 1]; String[] tempRoots = new String[StorageDeviceUtils.getStorageDevices(context, false).size() + 2];
int j = 0; int j = 0;
tempRoots[j] = "/mnt"; tempRoots[j++] = "/mnt";
for (StorageDevice storageDevice : StorageDeviceUtils.getStorageDevices((Activity) context, false)) { tempRoots[j++] = defaultPath;
j++; for (StorageDevice storageDevice : StorageDeviceUtils.getStorageDevices(context, false)) {
tempRoots[j] = storageDevice.getName(); tempRoots[j++] = storageDevice.getName();
} }
int i = 0; int i = 0;

View File

@ -20,12 +20,15 @@
package org.kiwix.kiwixmobile.zim_manager.fileselect_view; package org.kiwix.kiwixmobile.zim_manager.fileselect_view;
import android.Manifest; import android.Manifest;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment;
import android.preference.PreferenceManager;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.support.v4.content.ContextCompat; import android.support.v4.content.ContextCompat;
import android.support.v7.app.AlertDialog; import android.support.v7.app.AlertDialog;
@ -123,10 +126,10 @@ public class ZimFileSelectFragment extends Fragment
File file = new File(path); File file = new File(path);
Uri uri = Uri.fromFile(file); Uri uri = Uri.fromFile(file);
Log.i(TAG_KIWIX, "Opening " + uri); Log.i(TAG_KIWIX, "Opening " + uri);
zimManageActivity.setResult(zimManageActivity.RESULT_OK, new Intent().setData(uri)); zimManageActivity.setResult(Activity.RESULT_OK, new Intent().setData(uri));
zimManageActivity.finish(); zimManageActivity.finish();
} else { } else {
zimManageActivity.setResult(zimManageActivity.RESULT_CANCELED); zimManageActivity.setResult(Activity.RESULT_CANCELED);
zimManageActivity.finish(); zimManageActivity.finish();
} }
} }
@ -245,7 +248,8 @@ public class ZimFileSelectFragment extends Fragment
TestingUtils.unbindResource(ZimFileSelectFragment.class); TestingUtils.unbindResource(ZimFileSelectFragment.class);
}); });
} }
}).scan(); }).scan(PreferenceManager.getDefaultSharedPreferences(context)
.getString(KiwixMobileActivity.PREF_STORAGE, Environment.getExternalStorageDirectory().getPath()));
} }
@Override @Override