Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int pos) {
pathTxt.setText(pathStr);
currentHolder.getBtn().setOnClickListener(v -> {
System.out.println("Search: " + item.id);
activity.hideSearchView();
activity.searchController.hideSearchView();
activity.open(JsonData.getPathFormat(item.path),item.path,-1);
activity.highlightItem(item.id);
});
Expand Down
122 changes: 12 additions & 110 deletions app/src/main/java/com/sjapps/jsonlist/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.text.Editable;
import android.text.TextWatcher;
import android.transition.AutoTransition;
import android.transition.TransitionManager;
import android.util.Log;
Expand All @@ -51,17 +49,14 @@
import android.widget.TextView;
import android.widget.Toast;

import com.google.android.material.chip.Chip;
import com.google.android.material.chip.ChipGroup;
import com.google.android.material.snackbar.BaseTransientBottomBar;
import com.google.android.material.snackbar.Snackbar;

import com.sj14apps.jsonlist.core.JsonFunctions;
import com.sj14apps.jsonlist.core.SearchItem;
import com.sj14apps.jsonlist.core.controllers.SearchController;
import com.sjapps.about.AboutActivity;
import com.sjapps.adapters.ListAdapter;
import com.sjapps.adapters.PathListAdapter;
import com.sjapps.adapters.SearchListAdapter;
import com.sjapps.jsonlist.controllers.AndroidDragAndDrop;
import com.sjapps.jsonlist.controllers.AndroidFileManager;
import com.sjapps.jsonlist.controllers.AndroidJsonLoader;
Expand All @@ -73,6 +68,7 @@
import com.sj14apps.jsonlist.core.AppState;
import com.sj14apps.jsonlist.core.JsonData;
import com.sj14apps.jsonlist.core.ListItem;
import com.sjapps.jsonlist.controllers.AndroidSearchController;
import com.sjapps.jsonlist.databinding.ActivityMainBinding;
import com.sjapps.jsonlist.databinding.EditItemBinding;
import com.sjapps.library.customdialog.BasicDialog;
Expand All @@ -99,7 +95,6 @@ public class MainActivity extends AppCompatActivity {
public JsonData data = new JsonData();
ListAdapter adapter;
PathListAdapter pathAdapter;
SearchListAdapter searchAdapter;
public AutoTransition autoTransition = new AutoTransition();
public Handler handler = new Handler();
public Thread readFileThread;
Expand All @@ -109,6 +104,7 @@ public class MainActivity extends AppCompatActivity {
FileManager fileManager;
WebManager webManager;
JsonLoader jsonLoader;
public SearchController searchController;

public boolean isVertical = true;
public boolean isUrlSearching;
Expand Down Expand Up @@ -217,6 +213,7 @@ public int scrollVerticallyBy(int dx, RecyclerView.Recycler recycler, RecyclerVi

fileManager = new AndroidFileManager(this,handler);
jsonLoader = new AndroidJsonLoader(this);
searchController = new AndroidSearchController(this);

new AndroidDragAndDrop(this, dragAndDropCallback);

Expand Down Expand Up @@ -280,57 +277,7 @@ private void setEvents(){
return false;
});


ChipGroup searchChipGroup = binding.searchChipGroup;
searchChipGroup.setOnCheckedStateChangeListener((group, checkedIds) -> {
if (!checkedIds.isEmpty()){
boolean chip1 = ((Chip) group.getChildAt(0)).isChecked();
boolean chip2 = ((Chip) group.getChildAt(1)).isChecked();

if (chip1 && chip2)
data.searchMode = 0;
else if (chip1)
data.searchMode = 1;
else if (chip2)
data.searchMode = 2;

}else data.searchMode = 0;

if (binding.searchLL.getVisibility() == VISIBLE)
search(binding.searchTxt.getText().toString());
});

binding.searchTxt.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) {
if (binding.searchLL.getVisibility() == VISIBLE)
search(s.toString());
}

@Override
public void afterTextChanged(Editable s) {

}
});

binding.searchTxt.setOnEditorActionListener((v, actionId, event) -> {
if (actionId == EditorInfo.IME_ACTION_DONE ||
actionId == EditorInfo.IME_ACTION_SEARCH ||
event != null &&
event.getAction() == KeyEvent.ACTION_DOWN &&
event.getKeyCode() == KeyEvent.KEYCODE_ENTER){

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(binding.searchTxt.getWindowToken(), 0);
return true;
}
return false;
});
searchController.setEvents(data);

binding.menu.openFileBtn2.setOnClickListener(view -> {
fileManager.importFromFile();
Expand All @@ -355,7 +302,7 @@ public void afterTextChanged(Editable s) {
binding.dimLayout.setOnClickListener(view -> open_closeMenu());
binding.splitViewBtn.setOnClickListener(view -> rawJsonView.toggleSplitView());
binding.filterBtn.setOnClickListener(view -> filter());
binding.searchBtn.setOnClickListener(view -> showSearchView());
binding.searchBtn.setOnClickListener(view -> searchController.showSearchView());
binding.editBtn.setOnClickListener(view -> toggleEdit());
binding.saveBtn.setOnClickListener(view -> saveChanges());

Expand Down Expand Up @@ -406,21 +353,7 @@ public boolean onTouch(View v, MotionEvent event) {
});
}

private void search(String string) {

if (searchAdapter == null){
searchAdapter = new SearchListAdapter(this, new ArrayList<>());
}

ArrayList<SearchItem> searchItems;
if (string.isEmpty())
searchItems = new ArrayList<>();
else searchItems = JsonFunctions.searchItem(data,string);

searchAdapter.setSearchItems(searchItems);
searchAdapter.notifyDataSetChanged();

}

private void toggleEdit() {
if (adapter == null)
Expand Down Expand Up @@ -504,7 +437,7 @@ public void handleOnBackPressed() {
return;
}
if (binding.searchLL.getVisibility() == VISIBLE){
hideSearchView();
searchController.hideSearchView();
return;
}

Expand Down Expand Up @@ -722,7 +655,7 @@ public void onRightButtonClick() {
}

if (binding.searchLL.getVisibility() == VISIBLE){
hideSearchView();
searchController.hideSearchView();
}


Expand Down Expand Up @@ -754,40 +687,6 @@ public void hideUrlSearchView() {

}

private void showSearchView() {
TransitionManager.beginDelayedTransition(binding.content, autoTransition);
binding.mainLL.setVisibility(GONE);
binding.searchLL.setVisibility(VISIBLE);

if (binding.backBtn.getVisibility() == GONE)
binding.backBtn.setVisibility(VISIBLE);

binding.searchTxt.requestFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(binding.searchTxt, InputMethodManager.SHOW_IMPLICIT);

searchAdapter = new SearchListAdapter(this,new ArrayList<>());

binding.searchResultList.setAdapter(searchAdapter);

}

public void hideSearchView() {
binding.searchLL.setVisibility(GONE);
TransitionManager.beginDelayedTransition(binding.content, autoTransition);
binding.mainLL.setVisibility(VISIBLE);
binding.searchTxt.setText("");

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm.isActive())
imm.hideSoftInputFromWindow(binding.searchTxt.getWindowToken(), 0);

if (data.isEmptyPath()) {
binding.backBtn.setVisibility(GONE);
}

}

public void open(String Title, String path, int previousPosition) {
TransitionManager.endTransitions(binding.content);
TransitionManager.beginDelayedTransition(binding.content, autoTransition);
Expand Down Expand Up @@ -918,6 +817,9 @@ public void showHidePathList() {
if (isEditMode)
return;

if (binding.searchLL.getVisibility() == VISIBLE)
return;

if (binding.pathListBG.getVisibility() == VISIBLE) {
binding.pathListBG.setVisibility(GONE);
return;
Expand Down Expand Up @@ -1200,7 +1102,7 @@ public void success() {
hideUrlSearchView();

if (binding.searchLL.getVisibility() == VISIBLE)
hideSearchView();
searchController.hideSearchView();

data.setCurrentList(data.getRootList());
updateFilterList(data.getRootList());
Expand Down
Loading
Loading