BookmarksAdapter(ListView listView, List<Bookmark> bookmarks, boolean currentBook) { myBookmarks = bookmarks; myCurrentBook = currentBook; listView.setAdapter(this); listView.setOnItemClickListener(this); listView.setOnCreateContextMenuListener(this); }
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // open up the DbAdaptor db.open(); // gives us more screen space requestWindowFeature(Window.FEATURE_NO_TITLE); // need to do this because the camera doesn't do portrait mode setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); // initialize all our views. LayoutInflater inflater = getLayoutInflater(); viewCaptureNote = inflater.inflate(R.layout.view_capture_note, null); viewNote = inflater.inflate(R.layout.view_note, null); viewTagList = inflater.inflate(R.layout.view_tag_list, null); viewNoteGallery = inflater.inflate(R.layout.view_note_gallery, null); // set the content view initially to save notes setContentView(viewCaptureNote); // set up the click listeners for the camera preview screen CameraPreview cameraPreview = (CameraPreview) findViewById(R.id.surface); findViewById(R.id.discard).setOnClickListener(cameraPreview); findViewById(R.id.take).setOnClickListener(cameraPreview); findViewById(R.id.save_untagged).setOnClickListener(cameraPreview); findViewById(R.id.save_and_tag).setOnClickListener(cameraPreview); // set up the 'view untagged' option in the list menu View someView = viewTagList.findViewById(R.id.tag_list_untagged); someView.findViewById(R.id.tag_subtags).setVisibility(View.GONE); ((TextView) someView.findViewById(R.id.tag_name)).setText("Click to view untagged notes"); someView.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { Gallery g = (Gallery) viewNoteGallery.findViewById(R.id.note_gallery); g.setAdapter(new NoteGalleryImageAdaptor(SBActivity.this, db.getUntaggedNotes())); setContentView(viewNoteGallery); } }); // set the list adaptor for our tag list final ListView lv = (ListView) viewTagList.findViewById(R.id.item_list); lv.setAdapter(new TagViewListAdaptor(this, db.getTagList())); registerForContextMenu(lv); lv.setOnItemClickListener( new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { TextView v = (TextView) view.findViewById(R.id.tag_subtags); v.setVisibility(v.getVisibility() == View.VISIBLE ? View.GONE : View.VISIBLE); long tagId = (Long) view.findViewById(R.id.tag_name).getTag(); if (v.getVisibility() == View.VISIBLE) { int subtagCount = 0; StringBuilder subTags = new StringBuilder("Sub-tags: "); Cursor c = db.getSubTags(tagId); while (c.moveToNext()) { subTags.append(c.getString(1) + " "); subtagCount++; } if (subtagCount > 0) v.setText(subTags); else v.setText("No sub-tags."); } } }); lv.setOnCreateContextMenuListener( new View.OnCreateContextMenuListener() { public void onCreateContextMenu( ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { menu.setHeaderIcon(android.R.drawable.ic_menu_info_details); ListView lv = (ListView) viewTagList.findViewById(R.id.item_list); Cursor listItem = (Cursor) lv.getItemAtPosition(((AdapterView.AdapterContextMenuInfo) menuInfo).position); String tagName = listItem.getString(1); menu.setHeaderTitle("Tag '" + tagName + "'"); menu.add(0, CONTEXT_VIEW_NOTES, 0, "View notes tagged with '" + tagName + "'"); menu.add(0, CONTEXT_DELETE_TAG, 0, "Delete tag"); } }); // set up click listeners for add tag viewTagList .findViewById(R.id.save_tag) .setOnClickListener( new View.OnClickListener() { public void onClick(View view) { EditText editText = (EditText) viewTagList.findViewById(R.id.tag_id); if (editText.getText().length() == 0) return; db.addNewTag(editText.getText()); ((TagViewListAdaptor) lv.getAdapter()).refreshData(); Toast.makeText( SBActivity.this, "Tag '" + editText.getText() + "' added.", Toast.LENGTH_SHORT) .show(); editText.setText(""); } }); viewTagList.setOnFocusChangeListener( new View.OnFocusChangeListener() { @Override public void onFocusChange(View view, boolean b) { Log.i(TAG, "Focus changed innit: " + b); if (b) ((TagViewListAdaptor) lv.getAdapter()).refreshData(); } }); // set up our note viewing gallery final Gallery g = (Gallery) viewNoteGallery.findViewById(R.id.note_gallery); g.setOnItemSelectedListener( new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { // set the note number i.e. 1/3 ((TextView) viewNoteGallery.findViewById(R.id.gallery_note_number)) .setText((i + 1) + " / " + g.getCount()); // set the date field Date d = new Date(((Note) view.getTag()).getSaveTime()); ((TextView) viewNoteGallery.findViewById(R.id.gallery_note_date)) .setText(DateFormat.getDateTimeInstance().format(d)); // set the tag field Cursor c = db.getTagListForImg(l); StringBuilder sb = new StringBuilder(); while (c.moveToNext()) { if (c.getInt(2) == 0) continue; sb.append(c.getString(1)); sb.append(", "); } // delete the last 2 chars: ", " if (sb.length() > 0) sb.delete(sb.length() - 2, sb.length()); else sb.append("none"); ((TextView) viewNoteGallery.findViewById(R.id.gallery_note_tags)) .setText(sb.toString()); } @Override public void onNothingSelected(AdapterView<?> adapterView) {} }); g.setOnItemLongClickListener( new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) { return true; } }); viewNoteGallery .findViewById(R.id.note_gallery_examine) .setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { Note n = (Note) ((View) g.getSelectedView()).getTag(); setViewSingleNote(n.getFileName()); } }); Handler btProgressHandler = new Handler() { public void handleMessage(Message msg) { if (btProgressDialog == null) return; switch (msg.what) { case BluetoothService.MSG_CONNECTED: btProgressDialog.setMessage("Bluetooth connected! Sending updates..."); break; case BluetoothService.MSG_RECEIVING: btProgressDialog.setMessage("Receiving updates from computer.."); break; case BluetoothService.MSG_PROGRESS: int cur = msg.arg1; int max = msg.arg2; btProgressDialog.setProgress(cur); btProgressDialog.setMax(max); break; case BluetoothService.MSG_DONE: btProgressDialog.dismiss(); break; } } }; bService.setProgressHandler(btProgressHandler); }
BookmarksAdapter(ListView listView, boolean showAddBookmarkItem) { myShowAddBookmarkItem = showAddBookmarkItem; listView.setAdapter(this); listView.setOnItemClickListener(this); listView.setOnCreateContextMenuListener(this); }