diff options
author | tom79 <tschneider.ac@gmail.com> | 2020-03-28 18:03:24 +0100 |
---|---|---|
committer | tom79 <tschneider.ac@gmail.com> | 2020-03-28 18:03:24 +0100 |
commit | 67f2f2c12a9890f3e2860b7a95ec25a5d046f343 (patch) | |
tree | 8687b79ca38df6458f77078a63d77b19f1de0d6e /app/src | |
parent | 4fae993ca9b973521a99ce95300a62c620f0f486 (diff) |
Allow to edit search
Diffstat (limited to 'app/src')
-rw-r--r-- | app/src/main/java/app/fedilab/android/activities/SearchResultTabActivity.java | 50 | ||||
-rw-r--r-- | app/src/main/res/layout/simple_bar_search.xml | 49 |
2 files changed, 71 insertions, 28 deletions
diff --git a/app/src/main/java/app/fedilab/android/activities/SearchResultTabActivity.java b/app/src/main/java/app/fedilab/android/activities/SearchResultTabActivity.java index ecccda936..c80cd0c2a 100644 --- a/app/src/main/java/app/fedilab/android/activities/SearchResultTabActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/SearchResultTabActivity.java @@ -22,6 +22,7 @@ import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import android.view.inputmethod.InputMethodManager; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; @@ -29,6 +30,7 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.appcompat.app.ActionBar; +import androidx.appcompat.widget.SearchView; import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; @@ -61,7 +63,8 @@ public class SearchResultTabActivity extends BaseActivity { private String search; private TabLayout tabLayout; private ViewPager search_viewpager; - + private SearchView toolbar_search; + private TextView toolbar_title; @Override protected void onCreate(Bundle savedInstanceState) { @@ -104,12 +107,13 @@ public class SearchResultTabActivity extends BaseActivity { if (actionBar != null) { LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE); 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))); actionBar.setCustomView(view, new ActionBar.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 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); - 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_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.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()); search_viewpager.setAdapter(mPagerAdapter); search_viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { - } - @Override public void onPageSelected(int position) { TabLayout.Tab tab = tabLayout.getTabAt(position); if (tab != null) tab.select(); } - @Override - public void onPageScrollStateChanged(int state) { - - } + public void onPageScrollStateChanged(int state) {} }); tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { diff --git a/app/src/main/res/layout/simple_bar_search.xml b/app/src/main/res/layout/simple_bar_search.xml index 3310950a8..6eb5dfe8b 100644 --- a/app/src/main/res/layout/simple_bar_search.xml +++ b/app/src/main/res/layout/simple_bar_search.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?><!-- - Copyright 2017 Thomas Schneider + Copyright 2020 Thomas Schneider This file is a part of Fedilab @@ -31,24 +31,35 @@ app:contentInsetStart="0dp" tools:ignore="UnusedAttribute"> - <ImageView - android:id="@+id/toolbar_close" - 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" + <LinearLayout + android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_gravity="center_vertical" - android:ellipsize="end" - android:maxLines="1" - android:scrollHorizontally="true" - android:textSize="16sp" /> + android:orientation="horizontal"> + <ImageView + android:id="@+id/toolbar_close" + android:layout_width="30dp" + 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>
\ No newline at end of file |