mirror of
https://github.com/TonyJiangWJ/Auto.js.git
synced 2026-06-21 21:01:43 +08:00
fix: ScriptListView not update when file created or deleted
This commit is contained in:
parent
7616634e40
commit
18e7fceac6
@ -9,8 +9,8 @@ android {
|
||||
applicationId "com.stardust.scriptdroid"
|
||||
minSdkVersion 17
|
||||
targetSdkVersion 23
|
||||
versionCode 202
|
||||
versionName "3.0.0 Alpha3"
|
||||
versionCode 203
|
||||
versionName "3.0.0 Alpha4"
|
||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||
multiDexEnabled true
|
||||
ndk {
|
||||
|
||||
@ -25,6 +25,8 @@ import com.stardust.scriptdroid.ui.common.ScriptLoopDialog;
|
||||
import com.stardust.scriptdroid.ui.common.ScriptOperations;
|
||||
import com.stardust.widget.BindableViewHolder;
|
||||
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import butterknife.BindView;
|
||||
@ -51,6 +53,7 @@ public class ScriptListView extends SwipeRefreshLayout implements SwipeRefreshLa
|
||||
private ScriptFile mCurrentDirectory;
|
||||
private OnScriptFileClickListener mOnScriptFileClickListener;
|
||||
private ScriptFile mSelectedScriptFile;
|
||||
private StorageFileProvider mStorageFileProvider;
|
||||
|
||||
public ScriptListView(Context context) {
|
||||
super(context);
|
||||
@ -80,7 +83,9 @@ public class ScriptListView extends SwipeRefreshLayout implements SwipeRefreshLa
|
||||
mScriptListView = new RecyclerView(getContext());
|
||||
addView(mScriptListView);
|
||||
initScriptListRecyclerView();
|
||||
setCurrentDirectory(StorageFileProvider.getDefault().getInitialDirectory());
|
||||
mStorageFileProvider = StorageFileProvider.getDefault();
|
||||
setCurrentDirectory(mStorageFileProvider.getInitialDirectory());
|
||||
mStorageFileProvider.registerDirectoryChangeListener(this);
|
||||
}
|
||||
|
||||
private void initScriptListRecyclerView() {
|
||||
@ -104,7 +109,7 @@ public class ScriptListView extends SwipeRefreshLayout implements SwipeRefreshLa
|
||||
private void loadScriptList() {
|
||||
mScriptFiles.clear();
|
||||
mDirectories.clear();
|
||||
StorageFileProvider.getDefault().getDirectoryScriptFiles(mCurrentDirectory)
|
||||
mStorageFileProvider.getDirectoryScriptFiles(mCurrentDirectory)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new SimpleObserver<ScriptFile>() {
|
||||
@ -126,6 +131,13 @@ public class ScriptListView extends SwipeRefreshLayout implements SwipeRefreshLa
|
||||
});
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
void onDirectoryChange(StorageFileProvider.DirectoryChangeEvent event) {
|
||||
if (event.directory.equals(mCurrentDirectory)) {
|
||||
loadScriptList();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
loadScriptList();
|
||||
@ -160,6 +172,12 @@ public class ScriptListView extends SwipeRefreshLayout implements SwipeRefreshLa
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDetachedFromWindow() {
|
||||
super.onDetachedFromWindow();
|
||||
mStorageFileProvider.unregisterDirectoryChangeListener(this);
|
||||
}
|
||||
|
||||
private class ScriptListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
private final int VIEW_TYPE_FILE = 0;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user