2021-03-19 09:19:27 +00:00
|
|
|
package awais.instagrabber.dialogs;
|
|
|
|
|
2021-03-22 00:11:35 +00:00
|
|
|
import android.app.Dialog;
|
2021-03-19 09:19:27 +00:00
|
|
|
import android.content.Context;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.view.LayoutInflater;
|
|
|
|
import android.view.View;
|
|
|
|
import android.view.ViewGroup;
|
2021-03-22 00:11:35 +00:00
|
|
|
import android.view.Window;
|
2021-03-19 09:19:27 +00:00
|
|
|
import android.widget.EditText;
|
2021-03-19 11:26:44 +00:00
|
|
|
import android.widget.Toast;
|
2021-03-19 09:19:27 +00:00
|
|
|
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import androidx.annotation.Nullable;
|
|
|
|
import androidx.fragment.app.DialogFragment;
|
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
|
|
import androidx.recyclerview.widget.RecyclerView;
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.HashSet;
|
|
|
|
|
2021-03-19 11:26:44 +00:00
|
|
|
import awais.instagrabber.R;
|
2021-03-19 09:19:27 +00:00
|
|
|
import awais.instagrabber.adapters.KeywordsFilterAdapter;
|
|
|
|
import awais.instagrabber.databinding.DialogKeywordsFilterBinding;
|
2021-05-18 18:54:26 +00:00
|
|
|
import awais.instagrabber.fragments.settings.PreferenceKeys;
|
2021-03-19 09:19:27 +00:00
|
|
|
import awais.instagrabber.utils.SettingsHelper;
|
2021-03-22 00:11:35 +00:00
|
|
|
import awais.instagrabber.utils.Utils;
|
2021-03-19 09:19:27 +00:00
|
|
|
|
|
|
|
public final class KeywordsFilterDialog extends DialogFragment {
|
|
|
|
|
2021-03-22 00:11:35 +00:00
|
|
|
@Override
|
|
|
|
public void onStart() {
|
|
|
|
super.onStart();
|
|
|
|
final Dialog dialog = getDialog();
|
|
|
|
if (dialog == null) return;
|
|
|
|
final Window window = dialog.getWindow();
|
|
|
|
if (window == null) return;
|
|
|
|
final int height = ViewGroup.LayoutParams.WRAP_CONTENT;
|
|
|
|
final int width = (int) (Utils.displayMetrics.widthPixels * 0.8);
|
|
|
|
window.setLayout(width, height);
|
|
|
|
}
|
|
|
|
|
2021-03-19 09:19:27 +00:00
|
|
|
@Override
|
|
|
|
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
2021-03-19 11:26:44 +00:00
|
|
|
final DialogKeywordsFilterBinding dialogKeywordsFilterBinding = DialogKeywordsFilterBinding.inflate(inflater, container, false);
|
2021-03-19 11:47:50 +00:00
|
|
|
init(dialogKeywordsFilterBinding, getContext());
|
|
|
|
dialogKeywordsFilterBinding.btnOK.setOnClickListener(view -> this.dismiss());
|
|
|
|
return dialogKeywordsFilterBinding.getRoot();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void init(DialogKeywordsFilterBinding dialogKeywordsFilterBinding, Context context){
|
2021-03-19 11:26:44 +00:00
|
|
|
final LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
|
|
|
|
final RecyclerView recyclerView = dialogKeywordsFilterBinding.recyclerKeyword;
|
2021-03-19 09:19:27 +00:00
|
|
|
recyclerView.setLayoutManager(linearLayoutManager);
|
|
|
|
|
2021-03-19 11:26:44 +00:00
|
|
|
final SettingsHelper settingsHelper = new SettingsHelper(context);
|
2021-05-18 18:54:26 +00:00
|
|
|
final ArrayList<String> items = new ArrayList<>(settingsHelper.getStringSet(PreferenceKeys.KEYWORD_FILTERS));
|
2021-03-19 11:26:44 +00:00
|
|
|
final KeywordsFilterAdapter adapter = new KeywordsFilterAdapter(context, items);
|
2021-03-19 09:19:27 +00:00
|
|
|
recyclerView.setAdapter(adapter);
|
|
|
|
|
|
|
|
final EditText editText = dialogKeywordsFilterBinding.editText;
|
|
|
|
|
2021-03-19 11:26:44 +00:00
|
|
|
dialogKeywordsFilterBinding.btnAdd.setOnClickListener(view ->{
|
2021-03-19 09:19:27 +00:00
|
|
|
final String s = editText.getText().toString();
|
|
|
|
if(s.isEmpty()) return;
|
|
|
|
if(items.contains(s)) {
|
|
|
|
editText.setText("");
|
|
|
|
return;
|
|
|
|
}
|
2021-03-22 00:11:35 +00:00
|
|
|
items.add(s.toLowerCase());
|
2021-05-18 18:54:26 +00:00
|
|
|
settingsHelper.putStringSet(PreferenceKeys.KEYWORD_FILTERS, new HashSet<>(items));
|
2021-03-19 11:26:44 +00:00
|
|
|
adapter.notifyItemInserted(items.size());
|
2021-03-22 00:11:35 +00:00
|
|
|
final String message = context.getString(R.string.added_keywords, s);
|
2021-03-19 11:26:44 +00:00
|
|
|
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
|
|
|
|
editText.setText("");
|
2021-03-19 09:19:27 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|