From d60521411e1e49f2a731177320b2335ff8019e14 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 6 Nov 2016 15:54:53 +0100 Subject: [PATCH] convert directoryadapter to kotlin --- .../gallery/adapters/DirectoryAdapter.java | 90 ------------------- .../gallery/adapters/DirectoryAdapter.kt | 73 +++++++++++++++ 2 files changed, 73 insertions(+), 90 deletions(-) delete mode 100644 app/src/main/java/com/simplemobiletools/gallery/adapters/DirectoryAdapter.java create mode 100644 app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt diff --git a/app/src/main/java/com/simplemobiletools/gallery/adapters/DirectoryAdapter.java b/app/src/main/java/com/simplemobiletools/gallery/adapters/DirectoryAdapter.java deleted file mode 100644 index e44b3689a..000000000 --- a/app/src/main/java/com/simplemobiletools/gallery/adapters/DirectoryAdapter.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.simplemobiletools.gallery.adapters; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.BaseAdapter; -import android.widget.ImageView; -import android.widget.TextView; - -import com.bumptech.glide.Glide; -import com.bumptech.glide.load.engine.DiskCacheStrategy; -import com.bumptech.glide.signature.StringSignature; -import com.simplemobiletools.gallery.R; -import com.simplemobiletools.gallery.models.Directory; - -import java.util.List; - -import butterknife.BindView; -import butterknife.ButterKnife; - -public class DirectoryAdapter extends BaseAdapter { - private final Context mContext; - private final List mDirs; - private final LayoutInflater mInflater; - - public DirectoryAdapter(Context context, List dirs) { - mContext = context; - mDirs = dirs; - mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - ViewHolder viewHolder; - if (convertView == null) { - convertView = mInflater.inflate(R.layout.directory_item, parent, false); - viewHolder = new ViewHolder(convertView); - convertView.setTag(viewHolder); - } else { - viewHolder = (ViewHolder) convertView.getTag(); - } - - final Directory dir = mDirs.get(position); - viewHolder.dirName.setText(dir.getName()); - viewHolder.photoCnt.setText(String.valueOf(dir.getMediaCnt())); - final String tmb = dir.getThumbnail(); - final StringSignature timestampSignature = new StringSignature(String.valueOf(dir.getTimestamp())); - if (tmb.endsWith(".gif")) { - Glide.with(mContext).load(tmb).asGif().diskCacheStrategy(DiskCacheStrategy.NONE).signature(timestampSignature) - .placeholder(R.color.tmb_background).centerCrop().crossFade().into(viewHolder.dirThumbnail); - } else { - Glide.with(mContext).load(tmb).diskCacheStrategy(DiskCacheStrategy.RESULT).signature(timestampSignature) - .placeholder(R.color.tmb_background).centerCrop().crossFade().into(viewHolder.dirThumbnail); - } - - return convertView; - } - - @Override - public int getCount() { - return mDirs.size(); - } - - @Override - public Object getItem(int position) { - return mDirs.get(position); - } - - @Override - public long getItemId(int position) { - return 0; - } - - public void updateItems(List newDirs) { - mDirs.clear(); - mDirs.addAll(newDirs); - notifyDataSetChanged(); - } - - static class ViewHolder { - @BindView(R.id.dir_name) TextView dirName; - @BindView(R.id.photo_cnt) TextView photoCnt; - @BindView(R.id.dir_thumbnail) ImageView dirThumbnail; - - public ViewHolder(View view) { - ButterKnife.bind(this, view); - } - } -} diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt new file mode 100644 index 000000000..1891e28e5 --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt @@ -0,0 +1,73 @@ +package com.simplemobiletools.gallery.adapters + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.BaseAdapter +import android.widget.ImageView +import android.widget.TextView +import com.bumptech.glide.Glide +import com.bumptech.glide.load.engine.DiskCacheStrategy +import com.bumptech.glide.signature.StringSignature +import com.simplemobiletools.gallery.R +import com.simplemobiletools.gallery.models.Directory +import kotlinx.android.synthetic.main.directory_item.view.* +import kotlinx.android.synthetic.main.directory_tmb.view.* + +class DirectoryAdapter(private val mContext: Context, private val mDirs: MutableList) : BaseAdapter() { + private val mInflater: LayoutInflater + + init { + mInflater = mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater + } + + override fun getView(position: Int, view: View?, parent: ViewGroup): View { + var convertView = view + val viewHolder: ViewHolder + if (convertView == null) { + convertView = mInflater.inflate(R.layout.directory_item, parent, false) + viewHolder = ViewHolder(convertView) + convertView!!.tag = viewHolder + } else { + viewHolder = convertView.tag as ViewHolder + } + + val dir = mDirs[position] + viewHolder.dirName.text = formatDirectoryName(dir) + viewHolder.photoCnt.text = dir.mediaCnt.toString() + val tmb = dir.thumbnail + val timestampSignature = StringSignature(dir.timestamp.toString()) + if (tmb.endsWith(".gif")) { + Glide.with(mContext).load(tmb).asGif().diskCacheStrategy(DiskCacheStrategy.NONE).signature(timestampSignature) + .placeholder(R.color.tmb_background).centerCrop().crossFade().into(viewHolder.dirThumbnail) + } else { + Glide.with(mContext).load(tmb).diskCacheStrategy(DiskCacheStrategy.RESULT).signature(timestampSignature) + .placeholder(R.color.tmb_background).centerCrop().crossFade().into(viewHolder.dirThumbnail) + } + + return convertView + } + + private fun formatDirectoryName(dir: Directory): String { + return dir.name + } + + override fun getCount(): Int { + return mDirs.size + } + + override fun getItem(position: Int): Any { + return mDirs[position] + } + + override fun getItemId(position: Int): Long { + return 0 + } + + internal class ViewHolder(view: View) { + val dirName: TextView = view.dir_name + val photoCnt: TextView = view.photo_cnt + val dirThumbnail: ImageView = view.dir_thumbnail + } +}