summaryrefslogtreecommitdiffstats
path: root/app/src
diff options
context:
space:
mode:
authortom79 <tschneider.ac@gmail.com>2020-03-28 18:03:24 +0100
committertom79 <tschneider.ac@gmail.com>2020-03-28 18:03:24 +0100
commit67f2f2c12a9890f3e2860b7a95ec25a5d046f343 (patch)
tree8687b79ca38df6458f77078a63d77b19f1de0d6e /app/src
parent4fae993ca9b973521a99ce95300a62c620f0f486 (diff)
Allow to edit search
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/java/app/fedilab/android/activities/SearchResultTabActivity.java50
-rw-r--r--app/src/main/res/layout/simple_bar_search.xml49
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