summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vdrmanager/src/de/bjusystems/vdrmanager/gui/VdrListActivity.java149
1 files changed, 99 insertions, 50 deletions
diff --git a/vdrmanager/src/de/bjusystems/vdrmanager/gui/VdrListActivity.java b/vdrmanager/src/de/bjusystems/vdrmanager/gui/VdrListActivity.java
index c8c5ca3..ff130b5 100644
--- a/vdrmanager/src/de/bjusystems/vdrmanager/gui/VdrListActivity.java
+++ b/vdrmanager/src/de/bjusystems/vdrmanager/gui/VdrListActivity.java
@@ -1,6 +1,7 @@
package de.bjusystems.vdrmanager.gui;
-import java.util.Currency;
+import java.util.ArrayList;
+import java.util.List;
import android.app.AlertDialog;
import android.content.Context;
@@ -15,11 +16,12 @@ import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
-import android.widget.SimpleCursorAdapter.CursorToStringConverter;
-import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
+import android.widget.ArrayAdapter;
+import android.widget.ImageView;
import android.widget.SimpleCursorAdapter;
+import android.widget.TextView;
import com.j256.ormlite.android.apptools.OrmLiteBaseListActivity;
@@ -34,28 +36,30 @@ public class VdrListActivity extends OrmLiteBaseListActivity<OrmDatabaseHelper>
private static final String TAG = VdrListActivity.class.getName();
- SimpleCursorAdapter adapter = null;
+ List<Vdr> list = new ArrayList<Vdr>();
+
+ ArrayAdapter<Vdr> adapter = null;
- Cursor cursor;
+ //Cursor cursor;
String[] listItems = {};
private boolean emptyConfig = false;
- private void initCursor() {
-
- //if (cursor != null) {
- //if (!cursor.isClosed()) {
- //cursor.close();
-// }
- //}
- try {
- cursor = getHelper().getVdrCursor();
- startManagingCursor(cursor);
- } catch (Exception ex) {
- Log.w(TAG,ex);
- }
- }
+// private void initCursor() {
+//
+// //if (cursor != null) {
+// //if (!cursor.isClosed()) {
+// //cursor.close();
+//// }
+// //}
+// try {
+// cursor = getHelper().getVdrCursor();
+// //startManagingCursor(cursor);
+// } catch (Exception ex) {
+// Log.w(TAG,ex);
+// }
+// }
private void populateIntent(){
emptyConfig = getIntent().getBooleanExtra(Intents.EMPTY_CONFIG, Boolean.FALSE);
@@ -82,37 +86,74 @@ public class VdrListActivity extends OrmLiteBaseListActivity<OrmDatabaseHelper>
}
});
- initCursor();
+// initCursor();
final Vdr cur = Preferences.get().getCurrentVdr();
- adapter = new SimpleCursorAdapter(this,
- android.R.layout.simple_list_item_2, cursor, new String[] {
- "name", "host" }, new int[] { android.R.id.text1,
- android.R.id.text2}) {
- @Override
- public void bindView(View view, Context context,
- Cursor cursor) {
-
- TextView text1 = (TextView)view.findViewById(android.R.id.text1);
- TextView text2 = (TextView)view.findViewById(android.R.id.text2);
- int id = cursor.getInt(cursor.getColumnIndex("_id"));
- String name = cursor.getString(cursor.getColumnIndex("name"));
- String host = cursor.getString(cursor.getColumnIndex("host"));
- text2.setText(host);
-
- if(cur != null && cur.getId() == id) {
- SpannableString content = new SpannableString(name);
- content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
- text1.setText(content);
- //text1.setText(text1.getText());
- } else {
- text1.setTypeface(Typeface.DEFAULT);
- text1.setText(name);
- }
-
-
- }
+ adapter = new ArrayAdapter<Vdr>(this, android.R.layout.simple_list_item_2 , list) {
+
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+ // recycle view?
+ Holder holder = null;
+ View view = convertView;
+ if (view == null) {
+ view = getLayoutInflater().inflate(android.R.layout.simple_list_item_2, null);
+ holder = new Holder();
+
+ holder.text1 = (TextView)view.findViewById(android.R.id.text1);
+ holder.text2 = (TextView)view.findViewById(android.R.id.text2);
+ view.setTag(holder);
+ } else {
+ holder = (Holder) view.getTag();
+ }
+
+ Vdr vdr = getItem(position);
+ String name = vdr.getName();
+ String host = vdr.getHost();
+ holder.text2.setText(host);
+
+ if(cur != null && cur.getId() == vdr.getId()) {
+ SpannableString content = new SpannableString(name);
+ content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
+ holder.text1.setText(content);
+ //text1.setText(text1.getText());
+ } else {
+ holder.text1.setTypeface(Typeface.DEFAULT);
+ holder.text1.setText(name);
+ }
+ return view;
+ }
+
};
+
+ //adapter = new ArrayAdapter<Vdr>(
+// "name", "host" }, new int[] { android.R.id.text1,
+// android.R.id.text2}) {
+// @Override
+// public void bindView(View view, Context context,
+// Cursor cursor) {
+//
+// TextView text1 = (TextView)view.findViewById(android.R.id.text1);
+// TextView text2 = (TextView)view.findViewById(android.R.id.text2);
+// int id = cursor.getInt(cursor.getColumnIndex("_id"));
+// String name = cursor.getString(cursor.getColumnIndex("name"));
+// String host = cursor.getString(cursor.getColumnIndex("host"));
+// text2.setText(host);
+//
+// if(cur != null && cur.getId() == id) {
+// SpannableString content = new SpannableString(name);
+// content.setSpan(new UnderlineSpan(), 0, content.length(), 0);
+// text1.setText(content);
+// //text1.setText(text1.getText());
+// } else {
+// text1.setTypeface(Typeface.DEFAULT);
+// text1.setText(name);
+// }
+//
+//
+// }
+//
+// };
setListAdapter(adapter);
registerForContextMenu(getListView());
getListView().setOnItemClickListener(this);
@@ -164,30 +205,35 @@ public class VdrListActivity extends OrmLiteBaseListActivity<OrmDatabaseHelper>
@Override
protected void onResume() {
+ refresh();
super.onResume();
}
@Override
public void onBackPressed() {
- if(cursor.getCount() == 0){
+ if(list.isEmpty()){
finish();
return;
}
if (emptyConfig) {
Intent intent = new Intent(this, VdrManagerActivity.class);
+ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
} else {
super.onBackPressed();
}
}
+
+
/**
* Refresh the list
*/
private void refresh() {
- initCursor();
- adapter.changeCursor(cursor);
+ list.clear();
+ list.addAll(getHelper().getVdrDAO().queryForAll());
+ adapter.notifyDataSetChanged();
}
public boolean onItemLongClick(AdapterView<?> parent, View view,
@@ -201,6 +247,9 @@ public class VdrListActivity extends OrmLiteBaseListActivity<OrmDatabaseHelper>
int which) {
if (getHelper().getVdrDAO()
.deleteById((int) id) > 0) {
+ if(Preferences.get().getCurrentVdrContext(VdrListActivity.this) == id){
+ Preferences.setCurrentVdr(VdrListActivity.this, null);
+ }
refresh();
}