From 23366e85130b72dd1fd44cd16c506c7f9b6505f4 Mon Sep 17 00:00:00 2001 From: Gyubin Han Date: Sun, 4 Jan 2026 23:01:06 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=B4=88=EA=B8=B0=20=EB=A1=9C=EC=BB=AC?= =?UTF-8?q?=20=ED=8C=8C=EC=9D=BC=20=ED=83=90=EC=83=89=EA=B8=B0=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../android/file/explorer/FileAdapter.java | 53 +++++++++++++++++++ .../gyu/android/file/explorer/FileItem.java | 25 +++++++++ .../android/file/explorer/MainActivity.java | 12 +++++ app/src/main/res/drawable/ic_file.xml | 10 ++++ app/src/main/res/drawable/ic_folder.xml | 10 ++++ app/src/main/res/layout/activity_main.xml | 14 +++++ app/src/main/res/layout/list_item_file.xml | 21 ++++++++ app/src/main/res/xml/provider_paths.xml | 4 ++ 8 files changed, 149 insertions(+) create mode 100644 app/src/main/java/be/gyu/android/file/explorer/FileAdapter.java create mode 100644 app/src/main/java/be/gyu/android/file/explorer/FileItem.java create mode 100644 app/src/main/java/be/gyu/android/file/explorer/MainActivity.java create mode 100644 app/src/main/res/drawable/ic_file.xml create mode 100644 app/src/main/res/drawable/ic_folder.xml create mode 100644 app/src/main/res/layout/activity_main.xml create mode 100644 app/src/main/res/layout/list_item_file.xml create mode 100644 app/src/main/res/xml/provider_paths.xml diff --git a/app/src/main/java/be/gyu/android/file/explorer/FileAdapter.java b/app/src/main/java/be/gyu/android/file/explorer/FileAdapter.java new file mode 100644 index 0000000..e0fc639 --- /dev/null +++ b/app/src/main/java/be/gyu/android/file/explorer/FileAdapter.java @@ -0,0 +1,53 @@ +package be.gyu.android.file.explorer; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; +import java.util.List; + +public class FileAdapter extends RecyclerView.Adapter { + + private final List fileList; + + public FileAdapter(List fileList) { + this.fileList = fileList; + } + + @NonNull + @Override + public FileViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_file, parent, false); + return new FileViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull FileViewHolder holder, int position) { + FileItem fileItem = fileList.get(position); + holder.name.setText(fileItem.getName()); + if (fileItem.isDirectory()) { + holder.icon.setImageResource(R.drawable.ic_folder); + } else { + holder.icon.setImageResource(R.drawable.ic_file); + } + } + + @Override + public int getItemCount() { + return fileList.size(); + } + + static class FileViewHolder extends RecyclerView.ViewHolder { + ImageView icon; + TextView name; + + public FileViewHolder(@NonNull View itemView) { + super(itemView); + icon = itemView.findViewById(R.id.icon); + name = itemView.findViewById(R.id.name); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/be/gyu/android/file/explorer/FileItem.java b/app/src/main/java/be/gyu/android/file/explorer/FileItem.java new file mode 100644 index 0000000..f5335b8 --- /dev/null +++ b/app/src/main/java/be/gyu/android/file/explorer/FileItem.java @@ -0,0 +1,25 @@ +package be.gyu.android.file.explorer; + +public class FileItem { + private String name; + private String path; + private boolean isDirectory; + + public FileItem(String name, String path, boolean isDirectory) { + this.name = name; + this.path = path; + this.isDirectory = isDirectory; + } + + public String getName() { + return name; + } + + public String getPath() { + return path; + } + + public boolean isDirectory() { + return isDirectory; + } +} \ No newline at end of file diff --git a/app/src/main/java/be/gyu/android/file/explorer/MainActivity.java b/app/src/main/java/be/gyu/android/file/explorer/MainActivity.java new file mode 100644 index 0000000..c98f145 --- /dev/null +++ b/app/src/main/java/be/gyu/android/file/explorer/MainActivity.java @@ -0,0 +1,12 @@ +package be.gyu.android.file.explorer; + +import androidx.appcompat.app.AppCompatActivity; +import android.os.Bundle; + +public class MainActivity extends AppCompatActivity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_file.xml b/app/src/main/res/drawable/ic_file.xml new file mode 100644 index 0000000..714385c --- /dev/null +++ b/app/src/main/res/drawable/ic_file.xml @@ -0,0 +1,10 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_folder.xml b/app/src/main/res/drawable/ic_folder.xml new file mode 100644 index 0000000..a4de917 --- /dev/null +++ b/app/src/main/res/drawable/ic_folder.xml @@ -0,0 +1,10 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..93faac8 --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/list_item_file.xml b/app/src/main/res/layout/list_item_file.xml new file mode 100644 index 0000000..66f99fb --- /dev/null +++ b/app/src/main/res/layout/list_item_file.xml @@ -0,0 +1,21 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/xml/provider_paths.xml b/app/src/main/res/xml/provider_paths.xml new file mode 100644 index 0000000..ae73680 --- /dev/null +++ b/app/src/main/res/xml/provider_paths.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file