Allow to edit search
This commit is contained in:
parent
4fae993ca9
commit
67f2f2c12a
|
@ -22,6 +22,7 @@ import android.view.LayoutInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.view.inputmethod.InputMethodManager;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
@ -29,6 +30,7 @@ import android.widget.Toast;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.appcompat.app.ActionBar;
|
import androidx.appcompat.app.ActionBar;
|
||||||
|
import androidx.appcompat.widget.SearchView;
|
||||||
import androidx.core.content.ContextCompat;
|
import androidx.core.content.ContextCompat;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.fragment.app.FragmentManager;
|
import androidx.fragment.app.FragmentManager;
|
||||||
|
@ -61,7 +63,8 @@ public class SearchResultTabActivity extends BaseActivity {
|
||||||
private String search;
|
private String search;
|
||||||
private TabLayout tabLayout;
|
private TabLayout tabLayout;
|
||||||
private ViewPager search_viewpager;
|
private ViewPager search_viewpager;
|
||||||
|
private SearchView toolbar_search;
|
||||||
|
private TextView toolbar_title;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
@ -104,12 +107,13 @@ public class SearchResultTabActivity extends BaseActivity {
|
||||||
if (actionBar != null) {
|
if (actionBar != null) {
|
||||||
LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);
|
LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);
|
||||||
assert inflater != null;
|
assert inflater != null;
|
||||||
View view = inflater.inflate(R.layout.simple_bar, new LinearLayout(getApplicationContext()), false);
|
View view = inflater.inflate(R.layout.simple_bar_search, new LinearLayout(getApplicationContext()), false);
|
||||||
view.setBackground(new ColorDrawable(ContextCompat.getColor(SearchResultTabActivity.this, R.color.cyanea_primary)));
|
view.setBackground(new ColorDrawable(ContextCompat.getColor(SearchResultTabActivity.this, R.color.cyanea_primary)));
|
||||||
actionBar.setCustomView(view, new ActionBar.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
|
actionBar.setCustomView(view, new ActionBar.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
|
||||||
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
|
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
|
||||||
|
toolbar_search = actionBar.getCustomView().findViewById(R.id.toolbar_search);
|
||||||
ImageView toolbar_close = actionBar.getCustomView().findViewById(R.id.toolbar_close);
|
ImageView toolbar_close = actionBar.getCustomView().findViewById(R.id.toolbar_close);
|
||||||
TextView toolbar_title = actionBar.getCustomView().findViewById(R.id.toolbar_title);
|
toolbar_title = actionBar.getCustomView().findViewById(R.id.toolbar_title);
|
||||||
toolbar_close.setOnClickListener(v -> finish());
|
toolbar_close.setOnClickListener(v -> finish());
|
||||||
toolbar_title.setText(search);
|
toolbar_title.setText(search);
|
||||||
}
|
}
|
||||||
|
@ -119,26 +123,54 @@ public class SearchResultTabActivity extends BaseActivity {
|
||||||
tabLayout.addTab(tabLayout.newTab().setText(getString(R.string.toots)));
|
tabLayout.addTab(tabLayout.newTab().setText(getString(R.string.toots)));
|
||||||
tabLayout.addTab(tabLayout.newTab().setText(getString(R.string.action_cache)));
|
tabLayout.addTab(tabLayout.newTab().setText(getString(R.string.action_cache)));
|
||||||
|
|
||||||
|
toolbar_search.setIconified(true);
|
||||||
|
toolbar_search.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onQueryTextSubmit(String query) {
|
||||||
|
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
|
||||||
|
assert imm != null;
|
||||||
|
imm.hideSoftInputFromWindow(toolbar_search.getWindowToken(), 0);
|
||||||
|
query = query.replaceAll("^#+", "");
|
||||||
|
search = query.trim();
|
||||||
|
PagerAdapter mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());
|
||||||
|
search_viewpager.setAdapter(mPagerAdapter);
|
||||||
|
toolbar_search.clearFocus();
|
||||||
|
toolbar_title.setText(search);
|
||||||
|
toolbar_title.setVisibility(View.VISIBLE);
|
||||||
|
toolbar_title.requestFocus();
|
||||||
|
toolbar_search.setIconified(true);
|
||||||
|
toolbar_search.setIconified(true);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean onQueryTextChange(String newText) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
toolbar_search.setOnCloseListener(() -> {
|
||||||
|
toolbar_title.setText(search);
|
||||||
|
toolbar_title.setVisibility(View.VISIBLE);
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
toolbar_search.setOnSearchClickListener(v -> {
|
||||||
|
toolbar_search.setQuery(search, false);
|
||||||
|
toolbar_title.setVisibility(View.GONE);
|
||||||
|
});
|
||||||
PagerAdapter mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());
|
PagerAdapter mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());
|
||||||
search_viewpager.setAdapter(mPagerAdapter);
|
search_viewpager.setAdapter(mPagerAdapter);
|
||||||
|
|
||||||
search_viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
search_viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPageSelected(int position) {
|
public void onPageSelected(int position) {
|
||||||
TabLayout.Tab tab = tabLayout.getTabAt(position);
|
TabLayout.Tab tab = tabLayout.getTabAt(position);
|
||||||
if (tab != null)
|
if (tab != null)
|
||||||
tab.select();
|
tab.select();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPageScrollStateChanged(int state) {
|
public void onPageScrollStateChanged(int state) {}
|
||||||
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
|
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?><!--
|
<?xml version="1.0" encoding="utf-8"?><!--
|
||||||
Copyright 2017 Thomas Schneider
|
Copyright 2020 Thomas Schneider
|
||||||
|
|
||||||
This file is a part of Fedilab
|
This file is a part of Fedilab
|
||||||
|
|
||||||
|
@ -31,24 +31,35 @@
|
||||||
app:contentInsetStart="0dp"
|
app:contentInsetStart="0dp"
|
||||||
tools:ignore="UnusedAttribute">
|
tools:ignore="UnusedAttribute">
|
||||||
|
|
||||||
<ImageView
|
<LinearLayout
|
||||||
android:id="@+id/toolbar_close"
|
android:layout_width="match_parent"
|
||||||
android:layout_width="30dp"
|
|
||||||
android:layout_height="30dp"
|
|
||||||
android:layout_marginEnd="10dp"
|
|
||||||
android:contentDescription="@string/close"
|
|
||||||
android:gravity="center_vertical"
|
|
||||||
android:src="@drawable/ic_close"
|
|
||||||
android:tint="?attr/iconColorMenu" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/toolbar_title"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:orientation="horizontal">
|
||||||
android:ellipsize="end"
|
<ImageView
|
||||||
android:maxLines="1"
|
android:id="@+id/toolbar_close"
|
||||||
android:scrollHorizontally="true"
|
android:layout_width="30dp"
|
||||||
android:textSize="16sp" />
|
android:layout_height="30dp"
|
||||||
|
android:layout_marginEnd="10dp"
|
||||||
|
android:contentDescription="@string/close"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:src="@drawable/ic_close"
|
||||||
|
android:tint="?attr/iconColorMenu" />
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/toolbar_title"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:scrollHorizontally="true"
|
||||||
|
android:textSize="16sp" />
|
||||||
|
<androidx.appcompat.widget.SearchView
|
||||||
|
android:id="@+id/toolbar_search"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:gravity="end" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
</androidx.appcompat.widget.Toolbar>
|
</androidx.appcompat.widget.Toolbar>
|
Loading…
Reference in New Issue