
The only remaining activity is the AppDetails acvitity, which will require a little more than just making it extend ActionBarActivity. Currently, it extends ListActivity. To support appcompat-v7, it really should have two fragments - the details one and the list one. Then, when the orientation is changed, it should load a different layout with the fragments side by side. Although Google is encouraging people to make old devices run apps with the action bar (via appcompat-v7), they haven't provided a way for people to create preference/setting screens with an action bar. There are plenty of issues in the Android issue tracker relating to this, but it doesn't yet seem to be on the radar of the Android devs. Until there is a native implementation of PreferenceFragment in the appcompat-v7 support library, this submodule provides is a 3rd party solution. It is actually a fork of the first repo in github, though that was a bit of an upload and dump, without accepting MR's. This fork includes gradle support.
99 lines
3.3 KiB
Java
99 lines
3.3 KiB
Java
|
|
package org.fdroid.fdroid.views;
|
|
|
|
import android.content.Intent;
|
|
import android.os.Bundle;
|
|
import android.support.v4.view.MenuItemCompat;
|
|
import android.support.v7.app.ActionBarActivity;
|
|
import android.view.ActionMode;
|
|
import android.view.Menu;
|
|
import android.view.MenuInflater;
|
|
import android.view.MenuItem;
|
|
import android.widget.SearchView;
|
|
import org.fdroid.fdroid.FDroidApp;
|
|
import org.fdroid.fdroid.PreferencesActivity;
|
|
import org.fdroid.fdroid.R;
|
|
import org.fdroid.fdroid.views.fragments.SelectLocalAppsFragment;
|
|
|
|
public class SelectLocalAppsActivity extends ActionBarActivity {
|
|
|
|
private static final String TAG = "SelectLocalAppsActivity";
|
|
private SelectLocalAppsFragment selectLocalAppsFragment = null;
|
|
private SearchView searchView;
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
((FDroidApp) getApplication()).applyTheme(this);
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.select_local_apps_activity);
|
|
}
|
|
|
|
@Override
|
|
protected void onResume() {
|
|
super.onResume();
|
|
if (selectLocalAppsFragment == null)
|
|
selectLocalAppsFragment = (SelectLocalAppsFragment) getSupportFragmentManager()
|
|
.findFragmentById(R.id.fragment_app_list);
|
|
}
|
|
|
|
@Override
|
|
public boolean onCreateOptionsMenu(Menu menu) {
|
|
getMenuInflater().inflate(R.menu.select_local_apps_activity, menu);
|
|
searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.action_search));
|
|
searchView.setOnQueryTextListener(selectLocalAppsFragment);
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean onOptionsItemSelected(MenuItem item) {
|
|
switch (item.getItemId()) {
|
|
case android.R.id.home:
|
|
setResult(RESULT_CANCELED);
|
|
finish();
|
|
return true;
|
|
case R.id.action_search:
|
|
SearchView searchView = (SearchView) item.getActionView();
|
|
searchView.setIconified(false);
|
|
return true;
|
|
case R.id.action_settings:
|
|
startActivity(new Intent(this, PreferencesActivity.class));
|
|
return true;
|
|
}
|
|
return super.onOptionsItemSelected(item);
|
|
}
|
|
|
|
public ActionMode.Callback mActionModeCallback = new ActionMode.Callback() {
|
|
|
|
@Override
|
|
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
|
|
MenuInflater inflater = mode.getMenuInflater();
|
|
inflater.inflate(R.menu.select_local_apps_action_mode, menu);
|
|
menu.findItem(R.id.action_search).setActionView(searchView);
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
|
|
return false; // Return false if nothing is done
|
|
}
|
|
|
|
@Override
|
|
public boolean onActionItemClicked(final ActionMode mode, MenuItem item) {
|
|
switch (item.getItemId()) {
|
|
case R.id.action_update_repo:
|
|
setResult(RESULT_OK);
|
|
finish();
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onDestroyActionMode(ActionMode mode) {
|
|
setResult(RESULT_CANCELED);
|
|
finish();
|
|
}
|
|
};
|
|
}
|