diff --git a/app/src/main/java/org/houxg/leamonax/adapter/NoteAdapter.java b/app/src/main/java/org/houxg/leamonax/adapter/NoteAdapter.java index e24f741..0198de7 100644 --- a/app/src/main/java/org/houxg/leamonax/adapter/NoteAdapter.java +++ b/app/src/main/java/org/houxg/leamonax/adapter/NoteAdapter.java @@ -12,16 +12,23 @@ import android.text.style.BackgroundColorSpan; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.ImageView; import android.widget.TextView; +import com.bumptech.glide.Glide; + import org.houxg.leamonax.R; import org.houxg.leamonax.database.AppDataBase; import org.houxg.leamonax.model.Note; +import org.houxg.leamonax.model.NoteFile; import org.houxg.leamonax.model.Notebook; import org.houxg.leamonax.service.AccountService; +import org.houxg.leamonax.service.NoteFileService; +import org.houxg.leamonax.utils.FileUtils; import org.houxg.leamonax.utils.TimeUtils; import org.houxg.leamonax.widget.NoteList; +import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -115,6 +122,21 @@ public class NoteAdapter extends RecyclerView.Adapter { } private void renderDetail(NoteHolder holder, final Note note) { + List noteFiles = NoteFileService.getRelatedNoteFiles(note.getId()); + holder.imageView.setImageDrawable(null); + for (NoteFile noteFile : noteFiles) { + if (TextUtils.isEmpty(noteFile.getLocalPath())) { + continue; + } + File file = new File(noteFile.getLocalPath()); + if (FileUtils.isImageFile(file)) { + Glide.with(holder.container.getContext()) + .load(file) + .fitCenter() + .into(holder.imageView); + break; + } + } if (TextUtils.isEmpty(note.getTitle())) { holder.titleTv.setText(R.string.untitled); } else { @@ -247,6 +269,9 @@ public class NoteAdapter extends RecyclerView.Adapter { TextView dirtyTv; @BindView(R.id.container) View container; + @Nullable + @BindView(R.id.iv_image) + ImageView imageView; public NoteHolder(View itemView) { super(itemView); diff --git a/app/src/main/java/org/houxg/leamonax/service/NoteFileService.java b/app/src/main/java/org/houxg/leamonax/service/NoteFileService.java index 8a3e747..656f1eb 100644 --- a/app/src/main/java/org/houxg/leamonax/service/NoteFileService.java +++ b/app/src/main/java/org/houxg/leamonax/service/NoteFileService.java @@ -16,6 +16,7 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.net.URI; +import java.util.List; import java.util.Locale; import okio.BufferedSource; @@ -72,6 +73,10 @@ public class NoteFileService { } } + public static List getRelatedNoteFiles(long noteLocalId) { + return AppDataBase.getAllRelatedFile(noteLocalId); + } + public static InputStream getImage(String localId) { NoteFile noteFile = AppDataBase.getNoteFileByLocalId(localId); if (noteFile == null) { diff --git a/app/src/main/java/org/houxg/leamonax/utils/FileUtils.java b/app/src/main/java/org/houxg/leamonax/utils/FileUtils.java new file mode 100644 index 0000000..b29f996 --- /dev/null +++ b/app/src/main/java/org/houxg/leamonax/utils/FileUtils.java @@ -0,0 +1,10 @@ +package org.houxg.leamonax.utils; + + +import java.io.File; + +public class FileUtils { + public static boolean isImageFile(File file) { + return file != null && file.isFile() && file.getName().matches("([^\\s]+(\\.(?i)(jpg|png|gif|bmp))$)"); + } +} diff --git a/app/src/main/res/layout/item_note.xml b/app/src/main/res/layout/item_note.xml index a3a2740..c49148d 100644 --- a/app/src/main/res/layout/item_note.xml +++ b/app/src/main/res/layout/item_note.xml @@ -28,20 +28,36 @@ android:fontFamily="sans-serif-medium" android:textColor="@color/primary_text_light" android:textSize="20sp" + android:layout_marginBottom="4dp" tools:text="Leanote API" /> - + android:orientation="horizontal"> + + + + +