package com.nitrogen.settings.fragments; import android.app.Dialog; import android.content.Context; import android.view.View; import android.view.Window; import android.widget.AdapterView; import android.widget.EditText; import android.widget.Filter; import android.widget.ImageButton; import android.widget.ListView; import android.widget.ProgressBar; import android.widget.AdapterView.OnItemClickListener; import com.android.settings.R; public abstract class HAFRAppChooserDialog extends Dialog { final HAFRAppChooserAdapter dAdapter; final ProgressBar dProgressBar; final ListView dListView; final EditText dSearch; final ImageButton dButton; private int mId; public HAFRAppChooserDialog(Context context) { super(context); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.dialog_app_chooser_list); dListView = (ListView) findViewById(R.id.listView1); dSearch = (EditText) findViewById(R.id.searchText); dButton = (ImageButton) findViewById(R.id.searchButton); dProgressBar = (ProgressBar) findViewById(R.id.progressBar1); dAdapter = new HAFRAppChooserAdapter(context) { @Override public void onStartUpdate() { dProgressBar.setVisibility(View.VISIBLE); } @Override public void onFinishUpdate() { dProgressBar.setVisibility(View.GONE); } }; dListView.setAdapter(dAdapter); dListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> av, View v, int pos, long id) { HAFRAppChooserAdapter.AppItem info = (HAFRAppChooserAdapter.AppItem) av .getItemAtPosition(pos); onListViewItemClick(info, mId); dismiss(); } }); dButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dAdapter.getFilter().filter(dSearch.getText().toString(), new Filter.FilterListener() { public void onFilterComplete(int count) { dAdapter.update(); } }); } }); dAdapter.update(); } public void show(int id) { mId = id; show(); } public abstract void onListViewItemClick(HAFRAppChooserAdapter.AppItem info, int id); }