@ -1,9 +1,14 @@
@@ -1,9 +1,14 @@
package cc.niushuai.dididone.ui.setting.icon ;
import android.os.Bundle ;
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.Toast ;
import androidx.annotation.NonNull ;
import androidx.annotation.Nullable ;
@ -15,11 +20,14 @@ import androidx.recyclerview.widget.RecyclerView;
@@ -15,11 +20,14 @@ import androidx.recyclerview.widget.RecyclerView;
import com.mikepenz.fontawesome_typeface_library.FontAwesome ;
import java.util.ArrayList ;
import java.util.Collections ;
import java.util.HashMap ;
import java.util.List ;
import java.util.Map ;
import java.util.Set ;
import cc.niushuai.dididone.R ;
import cc.niushuai.dididone.biz.entity.SavedIcon ;
import cc.niushuai.dididone.databinding.FragmentIconBinding ;
import cc.niushuai.dididone.ui.base.InitAndSetListener ;
@ -50,9 +58,40 @@ public class IconFragment extends Fragment implements InitAndSetListener {
@@ -50,9 +58,40 @@ public class IconFragment extends Fragment implements InitAndSetListener {
@Override
public void init ( ) {
initSpinner ( ) ;
initRecyclerView ( ) ;
}
private void initSpinner ( ) {
Set < String > keySet = IconRecycleAdapter . ICON_MAP . keySet ( ) ;
ArrayList < String > keys = new ArrayList < > ( keySet ) ;
Collections . sort ( keys ) ;
binding . iconsSelect . setAdapter ( new ArrayAdapter < String > ( getContext ( ) , com . necer . R . layout . support_simple_spinner_dropdown_item , keys ) ) ;
binding . iconsSelect . setSelection ( 0 ) ;
binding . iconsSelect . setOnItemSelectedListener ( new AdapterView . OnItemSelectedListener ( ) {
/ * *
* @param parent The AdapterView where the selection happened
* @param view The view within the AdapterView that was clicked
* @param position The position of the view in the adapter
* @param id The row id of the item that is selected
* /
@Override
public void onItemSelected ( AdapterView < ? > parent , View view , int position , long id ) {
String key = keys . get ( position ) ;
iconRecycleAdapter . change ( key , item - > true ) ;
}
/ * *
* @param parent The AdapterView that now contains no selected item .
* /
@Override
public void onNothingSelected ( AdapterView < ? > parent ) {
}
} ) ;
}
private void initRecyclerView ( ) {
binding . iconsRecyclerView . addItemDecoration ( new DividerItemDecoration ( this . getActivity ( ) , DividerItemDecoration . VERTICAL ) ) ;
DefaultItemAnimator itemAnimator = new DefaultItemAnimator ( ) ;
@ -60,10 +99,11 @@ public class IconFragment extends Fragment implements InitAndSetListener {
@@ -60,10 +99,11 @@ public class IconFragment extends Fragment implements InitAndSetListener {
itemAnimator . setRemoveDuration ( 1000 ) ;
binding . iconsRecyclerView . setItemAnimator ( itemAnimator ) ;
iconRecycleAdapter = new IconRecycleAdapter ( getActivity ( ) , FontAwesome . Icon . class ) ;
binding . iconsRecyclerView . setAdapter ( iconRecycleAdapter ) ;
LinearLayoutManager layoutManager = new LinearLayoutManager ( getActivity ( ) ) ;
binding . iconsRecyclerView . setLayoutManager ( layoutManager ) ;
iconRecycleAdapter = new IconRecycleAdapter ( getActivity ( ) , FontAwesome . Icon . class ) ;
binding . iconsRecyclerView . setAdapter ( iconRecycleAdapter ) ;
}
/ * *
@ -71,6 +111,28 @@ public class IconFragment extends Fragment implements InitAndSetListener {
@@ -71,6 +111,28 @@ public class IconFragment extends Fragment implements InitAndSetListener {
* /
@Override
public void setListeners ( ) {
}
private void setSelectListener ( ) {
addIconSearchListener ( ) ;
}
private void addIconSearchListener ( ) {
binding . iconsSearch . addTextChangedListener ( new TextWatcher ( ) {
@Override
public void beforeTextChanged ( CharSequence s , int start , int count , int after ) {
iconRecycleAdapter . change ( null , item - > item . getIcon ( ) . contains ( s . toString ( ) ) ) ;
}
@Override
public void onTextChanged ( CharSequence s , int start , int before , int count ) {
iconRecycleAdapter . change ( null , item - > item . getIcon ( ) . contains ( s . toString ( ) ) ) ;
}
@Override
public void afterTextChanged ( Editable s ) {
iconRecycleAdapter . change ( null , item - > item . getIcon ( ) . contains ( s . toString ( ) ) ) ;
}
} ) ;
}
}