diff --git a/Clover/app/src/main/java/org/floens/chan/core/model/FileItem.java b/Clover/app/src/main/java/org/floens/chan/core/model/FileItem.java
deleted file mode 100644
index b6498a42..00000000
--- a/Clover/app/src/main/java/org/floens/chan/core/model/FileItem.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Clover - 4chan browser https://github.com/Floens/Clover/
- * Copyright (C) 2014 Floens
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package org.floens.chan.core.model;
-
-import org.floens.chan.core.saver.StorageHelper;
-
-import java.io.File;
-
-public class FileItem {
- public File file;
-
- public FileItem(File file) {
- this.file = file;
- }
-
- public boolean isFile() {
- return file.isFile();
- }
-
- public boolean isFolder() {
- return file.isDirectory();
- }
-
- public boolean canNavigate() {
- return StorageHelper.canNavigate(file);
- }
-
- public boolean canOpen() {
- return StorageHelper.canOpen(file);
- }
-}
diff --git a/Clover/app/src/main/java/org/floens/chan/core/model/FileItems.java b/Clover/app/src/main/java/org/floens/chan/core/model/FileItems.java
deleted file mode 100644
index 45a97feb..00000000
--- a/Clover/app/src/main/java/org/floens/chan/core/model/FileItems.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Clover - 4chan browser https://github.com/Floens/Clover/
- * Copyright (C) 2014 Floens
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package org.floens.chan.core.model;
-
-import java.io.File;
-import java.util.List;
-
-public class FileItems {
- public final File path;
- public final List fileItems;
-
- public final boolean canNavigateUp;
-
- public FileItems(File path, List fileItems, boolean canNavigateUp) {
- this.path = path;
- this.fileItems = fileItems;
- this.canNavigateUp = canNavigateUp;
- }
-}
diff --git a/Clover/app/src/main/java/org/floens/chan/core/saver/FileWatcher.java b/Clover/app/src/main/java/org/floens/chan/core/saver/FileWatcher.java
index 7b54a66d..9fa4cd6a 100644
--- a/Clover/app/src/main/java/org/floens/chan/core/saver/FileWatcher.java
+++ b/Clover/app/src/main/java/org/floens/chan/core/saver/FileWatcher.java
@@ -17,12 +17,10 @@
*/
package org.floens.chan.core.saver;
+import android.os.Environment;
import android.os.FileObserver;
import android.util.Log;
-import org.floens.chan.core.model.FileItem;
-import org.floens.chan.core.model.FileItems;
-
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
@@ -54,6 +52,11 @@ public class FileWatcher {
public void initialize() {
initialized = true;
+
+ if (!StorageHelper.canNavigate(startingPath)) {
+ startingPath = Environment.getExternalStorageDirectory();
+ }
+
navigateTo(startingPath);
}
@@ -126,4 +129,41 @@ public class FileWatcher {
public interface FileWatcherCallback {
void onFiles(FileItems fileItems);
}
+
+ public static class FileItem {
+ public File file;
+
+ public FileItem(File file) {
+ this.file = file;
+ }
+
+ public boolean isFile() {
+ return file.isFile();
+ }
+
+ public boolean isFolder() {
+ return file.isDirectory();
+ }
+
+ public boolean canNavigate() {
+ return StorageHelper.canNavigate(file);
+ }
+
+ public boolean canOpen() {
+ return StorageHelper.canOpen(file);
+ }
+ }
+
+ public static class FileItems {
+ public final File path;
+ public final List fileItems;
+
+ public final boolean canNavigateUp;
+
+ public FileItems(File path, List fileItems, boolean canNavigateUp) {
+ this.path = path;
+ this.fileItems = fileItems;
+ this.canNavigateUp = canNavigateUp;
+ }
+ }
}
diff --git a/Clover/app/src/main/java/org/floens/chan/ui/adapter/FilesAdapter.java b/Clover/app/src/main/java/org/floens/chan/ui/adapter/FilesAdapter.java
index fe0895ef..2d1de87e 100644
--- a/Clover/app/src/main/java/org/floens/chan/ui/adapter/FilesAdapter.java
+++ b/Clover/app/src/main/java/org/floens/chan/ui/adapter/FilesAdapter.java
@@ -28,8 +28,7 @@ import android.widget.ImageView;
import android.widget.TextView;
import org.floens.chan.R;
-import org.floens.chan.core.model.FileItem;
-import org.floens.chan.core.model.FileItems;
+import org.floens.chan.core.saver.FileWatcher;
import static org.floens.chan.utils.AndroidUtils.getAttrColor;
@@ -37,20 +36,20 @@ public class FilesAdapter extends RecyclerView.Adapter
private static final int ITEM_TYPE_FOLDER = 0;
private static final int ITEM_TYPE_FILE = 1;
- private FileItem highlightedItem;
- private FileItems fileItems;
+ private FileWatcher.FileItem highlightedItem;
+ private FileWatcher.FileItems fileItems;
private Callback callback;
public FilesAdapter(Callback callback) {
this.callback = callback;
}
- public void setFiles(FileItems fileItems) {
+ public void setFiles(FileWatcher.FileItems fileItems) {
this.fileItems = fileItems;
notifyDataSetChanged();
}
- public void setHighlightedItem(FileItem highlightedItem) {
+ public void setHighlightedItem(FileWatcher.FileItem highlightedItem) {
this.highlightedItem = highlightedItem;
}
@@ -69,7 +68,7 @@ public class FilesAdapter extends RecyclerView.Adapter
case ITEM_TYPE_FOLDER: {
boolean isFile = itemViewType == ITEM_TYPE_FILE;
- FileItem item = getItem(position);
+ FileWatcher.FileItem item = getItem(position);
FileViewHolder fileViewHolder = ((FileViewHolder) holder);
fileViewHolder.text.setText(item.file.getName());
@@ -104,7 +103,7 @@ public class FilesAdapter extends RecyclerView.Adapter
@Override
public int getItemViewType(int position) {
- FileItem item = getItem(position);
+ FileWatcher.FileItem item = getItem(position);
if (item.isFile()) {
return ITEM_TYPE_FILE;
} else if (item.isFolder()) {
@@ -114,11 +113,11 @@ public class FilesAdapter extends RecyclerView.Adapter
}
}
- public FileItem getItem(int position) {
+ public FileWatcher.FileItem getItem(int position) {
return fileItems.fileItems.get(position);
}
- private void onItemClicked(FileItem fileItem) {
+ private void onItemClicked(FileWatcher.FileItem fileItem) {
callback.onFileItemClicked(fileItem);
}
@@ -135,12 +134,12 @@ public class FilesAdapter extends RecyclerView.Adapter
@Override
public void onClick(View v) {
- FileItem item = getItem(getAdapterPosition());
+ FileWatcher.FileItem item = getItem(getAdapterPosition());
onItemClicked(item);
}
}
public interface Callback {
- void onFileItemClicked(FileItem fileItem);
+ void onFileItemClicked(FileWatcher.FileItem fileItem);
}
}
diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/SaveLocationController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/SaveLocationController.java
index a859ebae..1fc04133 100644
--- a/Clover/app/src/main/java/org/floens/chan/ui/controller/SaveLocationController.java
+++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/SaveLocationController.java
@@ -24,8 +24,6 @@ import android.view.View;
import org.floens.chan.R;
import org.floens.chan.controller.Controller;
-import org.floens.chan.core.model.FileItem;
-import org.floens.chan.core.model.FileItems;
import org.floens.chan.core.saver.FileWatcher;
import org.floens.chan.core.settings.ChanSettings;
import org.floens.chan.ui.activity.StartActivity;
@@ -48,7 +46,7 @@ public class SaveLocationController extends Controller implements FileWatcher.Fi
private boolean gotPermission = false;
private FileWatcher fileWatcher;
- private FileItems fileItems;
+ private FileWatcher.FileItems fileItems;
public SaveLocationController(Context context) {
super(context);
@@ -88,7 +86,7 @@ public class SaveLocationController extends Controller implements FileWatcher.Fi
}
@Override
- public void onFiles(FileItems fileItems) {
+ public void onFiles(FileWatcher.FileItems fileItems) {
this.fileItems = fileItems;
filesLayout.setFiles(fileItems);
}
@@ -99,7 +97,7 @@ public class SaveLocationController extends Controller implements FileWatcher.Fi
}
@Override
- public void onFileItemClicked(FileItem fileItem) {
+ public void onFileItemClicked(FileWatcher.FileItem fileItem) {
if (fileItem.canNavigate()) {
fileWatcher.navigateTo(fileItem.file);
}
diff --git a/Clover/app/src/main/java/org/floens/chan/ui/layout/FilesLayout.java b/Clover/app/src/main/java/org/floens/chan/ui/layout/FilesLayout.java
index 96dd8c28..52a39471 100644
--- a/Clover/app/src/main/java/org/floens/chan/ui/layout/FilesLayout.java
+++ b/Clover/app/src/main/java/org/floens/chan/ui/layout/FilesLayout.java
@@ -30,8 +30,7 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import org.floens.chan.R;
-import org.floens.chan.core.model.FileItem;
-import org.floens.chan.core.model.FileItems;
+import org.floens.chan.core.saver.FileWatcher;
import org.floens.chan.ui.adapter.FilesAdapter;
import org.floens.chan.utils.RecyclerUtils;
@@ -51,7 +50,7 @@ public class FilesLayout extends LinearLayout implements FilesAdapter.Callback,
private Map history = new HashMap<>();
private FileItemHistory currentHistory;
- private FileItems currentFileItems;
+ private FileWatcher.FileItems currentFileItems;
private Callback callback;
@@ -91,7 +90,7 @@ public class FilesLayout extends LinearLayout implements FilesAdapter.Callback,
this.callback = callback;
}
- public void setFiles(FileItems fileItems) {
+ public void setFiles(FileWatcher.FileItems fileItems) {
// Save the associated list position
if (currentFileItems != null) {
int[] indexTop = RecyclerUtils.getIndexAndTop(recyclerView);
@@ -132,7 +131,7 @@ public class FilesLayout extends LinearLayout implements FilesAdapter.Callback,
}
@Override
- public void onFileItemClicked(FileItem fileItem) {
+ public void onFileItemClicked(FileWatcher.FileItem fileItem) {
currentHistory.clickedItem = fileItem;
callback.onFileItemClicked(fileItem);
}
@@ -147,12 +146,12 @@ public class FilesLayout extends LinearLayout implements FilesAdapter.Callback,
private class FileItemHistory {
int index, top;
- FileItem clickedItem;
+ FileWatcher.FileItem clickedItem;
}
public interface Callback {
void onBackClicked();
- void onFileItemClicked(FileItem fileItem);
+ void onFileItemClicked(FileWatcher.FileItem fileItem);
}
}