Replace search dialog with a search widget

SearchView is the recommended way to implement search UI. See
https://developer.android.com/guide/topics/search/search-dialog.html#UsingSearchWidget
This commit is contained in:
relan 2015-11-11 16:56:14 +03:00
parent f0d72a3ec4
commit e841d63ea9
3 changed files with 16 additions and 9 deletions

View File

@ -88,6 +88,10 @@
android:name="org.fdroid.fdroid.data.InstalledAppProvider"
android:exported="false"/>
<meta-data
android:name="android.app.default_searchable"
android:value=".SearchResults" />
<activity
android:name=".FDroid"
android:launchMode="singleTop"
@ -292,10 +296,6 @@
<data android:pathPattern="/.*/.*/FDROID/REPO" />
<data android:pathPattern="/.*/.*/.*/FDROID/REPO" />
</intent-filter>
<meta-data
android:name="android.app.default_searchable"
android:value=".SearchResults" />
</activity>
<activity
android:name=".privileged.views.InstallConfirmActivity"

View File

@ -6,7 +6,8 @@
android:id="@+id/action_search"
android:icon="@drawable/ic_search_white"
android:title="@string/menu_search"
app:showAsAction="ifRoom"/>
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="collapseActionView|ifRoom"/>
<item
android:id="@+id/action_update_repo"
android:icon="@drawable/ic_refresh_white"

View File

@ -29,9 +29,11 @@ import android.content.res.Configuration;
import android.database.ContentObserver;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.view.MenuItemCompat;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.AlertDialog;
import android.support.v7.widget.SearchView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.Menu;
@ -239,6 +241,14 @@ public class FDroid extends ActionBarActivity {
MenuItem btItem = menu.findItem(R.id.action_bluetooth_apk);
btItem.setVisible(false);
}
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
// LayoutParams.MATCH_PARENT does not work, use a big value instead
searchView.setMaxWidth(1000000);
return super.onCreateOptionsMenu(menu);
}
@ -264,10 +274,6 @@ public class FDroid extends ActionBarActivity {
startActivity(new Intent(this, SwapWorkflowActivity.class));
return true;
case R.id.action_search:
onSearchRequested();
return true;
case R.id.action_bluetooth_apk:
/*
* If Bluetooth has not been enabled/turned on, then enabling