Skip to content

Commit

Permalink
convert new files to kotlin
Browse files Browse the repository at this point in the history
  • Loading branch information
newhinton committed Sep 15, 2024
1 parent 4c91300 commit 7696bfe
Show file tree
Hide file tree
Showing 2 changed files with 104 additions and 121 deletions.
27 changes: 13 additions & 14 deletions app/src/main/java/ca/pkay/rcloneexplorer/Items/FilterEntry.kt
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
package ca.pkay.rcloneexplorer.Items;
package ca.pkay.rcloneexplorer.Items

import android.content.Context;
class FilterEntry(filterType: Int, filter: String) {
@JvmField
var filterType: Int = FILTER_EXCLUDE

import ca.pkay.rcloneexplorer.R;
@JvmField
var filter: String

public class FilterEntry {

public static final int FILTER_INCLUDE = 0;
public static final int FILTER_EXCLUDE = 1;

public int filterType = FILTER_EXCLUDE;

public String filter;

init {
this.filterType = filterType
this.filter = filter
}

public FilterEntry(int filterType, String filter) {
this.filterType = filterType;
this.filter = filter;
companion object {
const val FILTER_INCLUDE: Int = 0
const val FILTER_EXCLUDE: Int = 1
}
}
Original file line number Diff line number Diff line change
@@ -1,127 +1,111 @@
package ca.pkay.rcloneexplorer.RecyclerViewAdapters;


import android.content.Context;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Spinner;

import androidx.annotation.NonNull;
import androidx.appcompat.widget.PopupMenu;
import androidx.recyclerview.widget.RecyclerView;


import java.util.List;

import ca.pkay.rcloneexplorer.Items.FilterEntry;
import ca.pkay.rcloneexplorer.R;

public class FilterEntryRecyclerViewAdapter extends RecyclerView.Adapter<FilterEntryRecyclerViewAdapter.ViewHolder> {
private List<FilterEntry> filterEntries;
private View view;
private final Context context;


public FilterEntryRecyclerViewAdapter(List<FilterEntry> filterEntries, Context context) {
this.filterEntries = filterEntries;
this.context = context;
package ca.pkay.rcloneexplorer.RecyclerViewAdapters

import android.content.Context
import android.text.Editable
import android.text.TextWatcher
import android.view.LayoutInflater
import android.view.MenuItem
import android.view.View
import android.view.ViewGroup
import android.widget.AdapterView
import android.widget.ArrayAdapter
import android.widget.EditText
import android.widget.ImageButton
import android.widget.Spinner
import androidx.appcompat.widget.PopupMenu
import androidx.recyclerview.widget.RecyclerView
import ca.pkay.rcloneexplorer.Items.FilterEntry
import ca.pkay.rcloneexplorer.R


class FilterEntryRecyclerViewAdapter(
private val mFilterEntries: ArrayList<FilterEntry>,
private val mContext: Context
) : RecyclerView.Adapter<FilterEntryRecyclerViewAdapter.ViewHolder>() {
private var view: View? = null


override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
view = LayoutInflater.from(parent.context)
.inflate(R.layout.fragment_filter_item, parent, false)
return ViewHolder(view)
}

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.fragment_filter_item, parent, false);
return new ViewHolder(view);
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val selectedFilterEntry = mFilterEntries[position]

@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, final int position) {
final FilterEntry selectedFilterEntry = filterEntries.get(position);

holder.filterText.setText(selectedFilterEntry.filter);
holder.filterText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
selectedFilterEntry.filter = s.toString();
holder.filterText.setText(selectedFilterEntry.filter)
holder.filterText.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
selectedFilterEntry.filter = s.toString()
}
@Override
public void afterTextChanged(Editable s) {}
});




ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<>(holder.itemView.getContext(),
android.R.layout.simple_spinner_item, new String[]{ context.getString(R.string.filter_type_include), context.getString(R.string.filter_type_exclude) });
holder.filterTypeSpinner.setAdapter(spinnerAdapter);
holder.filterTypeSpinner.setSelection(selectedFilterEntry.filterType);
holder.filterTypeSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
selectedFilterEntry.filterType = pos;
override fun afterTextChanged(s: Editable) {}
})


val spinnerAdapter = ArrayAdapter(
holder.itemView.context,
android.R.layout.simple_spinner_item,
arrayOf(
mContext.getString(R.string.filter_type_include),
mContext.getString(R.string.filter_type_exclude)
)
)
holder.filterTypeSpinner.adapter = spinnerAdapter
holder.filterTypeSpinner.setSelection(selectedFilterEntry.filterType)
holder.filterTypeSpinner.onItemSelectedListener =
object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(
parent: AdapterView<*>?,
view: View,
pos: Int,
id: Long
) {
selectedFilterEntry.filterType = pos
}

override fun onNothingSelected(parent: AdapterView<*>?) {}
}

@Override
public void onNothingSelected(AdapterView<?> parent) {}
});

holder.fileOptions.setOnClickListener(v-> {
showFileMenu(v, selectedFilterEntry);
});

holder.fileOptions.setOnClickListener { v: View ->
showFileMenu(v, selectedFilterEntry)
}
}

public void removeItem(FilterEntry filterEntry) {
int index = filterEntries.indexOf(filterEntry);
private fun removeItem(filterEntry: FilterEntry) {
val index = mFilterEntries.indexOf(filterEntry)
if (index >= 0) {
filterEntries.remove(index);
notifyItemRemoved(index);
mFilterEntries.removeAt(0)
notifyItemRemoved(index)
}
}

@Override
public int getItemCount() {
return filterEntries.size();
override fun getItemCount(): Int {
return mFilterEntries.size
}

private void showFileMenu(View view, final FilterEntry filterEntry) {
PopupMenu popupMenu = new PopupMenu(context, view);
popupMenu.getMenuInflater().inflate(R.menu.filter_entry_item_menu, popupMenu.getMenu());
popupMenu.setOnMenuItemClickListener(item -> {
switch (item.getItemId()) {
case R.id.action_delete_filter_entry:
removeItem(filterEntry);
break;
default:
return false;
private fun showFileMenu(view: View, filterEntry: FilterEntry) {
val popupMenu = PopupMenu(
mContext, view
)
popupMenu.menuInflater.inflate(R.menu.filter_entry_item_menu, popupMenu.menu)
popupMenu.setOnMenuItemClickListener { item: MenuItem ->
when (item.itemId) {
R.id.action_delete_filter_entry -> removeItem(filterEntry)
else -> return@setOnMenuItemClickListener false
}
return true;
});
popupMenu.show();
true
}
popupMenu.show()
}

public static class ViewHolder extends RecyclerView.ViewHolder {

final View view;
final Spinner filterTypeSpinner;
final EditText filterText;
final ImageButton fileOptions;

ViewHolder(View itemView) {
super(itemView);
this.view = itemView;
this.filterTypeSpinner = view.findViewById(R.id.filter_entry_filter_type);
this.filterText = view.findViewById(R.id.filter_entry_filter_text);
this.fileOptions = view.findViewById(R.id.filter_entry_filter_options);
}
class ViewHolder internal constructor(val view: View?) : RecyclerView.ViewHolder(
view!!
) {
val filterTypeSpinner: Spinner = view!!.findViewById(R.id.filter_entry_filter_type)
val filterText: EditText = view!!.findViewById(R.id.filter_entry_filter_text)
val fileOptions: ImageButton = view!!.findViewById(R.id.filter_entry_filter_options)
}
}

0 comments on commit 7696bfe

Please sign in to comment.