mirror of
https://github.com/SimpleMobileTools/Simple-File-Manager.git
synced 2025-06-05 22:09:15 +02:00
put directories and files in the same list + permission handling
This commit is contained in:
@ -1,12 +1,15 @@
|
||||
package com.simplemobiletools.filemanager.activities;
|
||||
|
||||
import android.Manifest;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
|
||||
import com.simplemobiletools.filemanager.R;
|
||||
import com.simplemobiletools.filemanager.Utils;
|
||||
import com.simplemobiletools.filemanager.models.Directory;
|
||||
import com.simplemobiletools.filemanager.models.FileDirItem;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
@ -14,27 +17,57 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
private static final int STORAGE_PERMISSION = 1;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_main);
|
||||
List<Directory> dirs = getDirectories();
|
||||
Collections.sort(dirs);
|
||||
}
|
||||
|
||||
private List<Directory> getDirectories() {
|
||||
final List<Directory> dirs = new ArrayList<>();
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
tryInitFileManager();
|
||||
}
|
||||
|
||||
private void tryInitFileManager() {
|
||||
if (Utils.hasStoragePermission(getApplicationContext())) {
|
||||
initializeFileManager();
|
||||
} else {
|
||||
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, STORAGE_PERMISSION);
|
||||
}
|
||||
}
|
||||
|
||||
private void initializeFileManager() {
|
||||
List<FileDirItem> items = getItems();
|
||||
Collections.sort(items);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
|
||||
if (requestCode == STORAGE_PERMISSION) {
|
||||
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||
initializeFileManager();
|
||||
} else {
|
||||
Utils.showToast(getApplicationContext(), R.string.no_permissions);
|
||||
finish();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private List<FileDirItem> getItems() {
|
||||
final List<FileDirItem> items = new ArrayList<>();
|
||||
final String path = Environment.getExternalStorageDirectory().toString();
|
||||
final File root = new File(path);
|
||||
File[] files = root.listFiles();
|
||||
for (File file : files) {
|
||||
if (file.isDirectory()) {
|
||||
final String dirPath = file.getAbsolutePath();
|
||||
final String dirName = Utils.getFilename(dirPath);
|
||||
dirs.add(new Directory(dirPath, dirName));
|
||||
}
|
||||
final String curPath = file.getAbsolutePath();
|
||||
final String curName = Utils.getFilename(curPath);
|
||||
items.add(new FileDirItem(curPath, curName, file.isDirectory()));
|
||||
}
|
||||
return dirs;
|
||||
return items;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user