Android Open Source - bnote List Activity






From Project

Back to project page bnote.

License

The source code is released under:

MIT License

If you think the Android project bnote listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.rd.bnote;
//from  w ww.jav a 2  s  .c  o  m
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat;
import android.util.Log;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnCreateContextMenuListener;
import android.widget.AdapterView;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;

public class ListActivity extends Activity {

  private DBManager mDbManager;
  private ListView mListView;
  protected static final int MENU_DELETE = Menu.FIRST;
  protected static final String TAG = "BNOTE";
  protected static final int ID = 0x0103;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    // Remove title bar
    // this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    // Remove notification bar
    // this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
    //     WindowManager.LayoutParams.FLAG_FULLSCREEN);
    
    setContentView(R.layout.note_list);
    findViews();
    mListView.setEmptyView(findViewById(R.id.empty));
    mDbManager = new DBManager(this);
  }
  
  public void findViews() {
    mListView = (ListView) findViewById(R.id.list_note);
    mListView.setOnItemClickListener(new OnItemClickListener() {
      @Override
      public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
        Intent intent = new Intent(ListActivity.this, EditActivity.class);
        intent.putExtra(Note.FIELD__ID, (int)id);
        startActivityForResult(intent, RESULT_FIRST_USER);
      }
    });
    mListView.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
      @Override
      public void onCreateContextMenu(ContextMenu menu, View v,
          ContextMenuInfo menuInfo) {
        menu.add(0, MENU_DELETE, 0, "??");
        menu.setHeaderTitle("??????????");
      }
    });
  }
  
  @Override
  public boolean onContextItemSelected(MenuItem item) {
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
    switch (item.getItemId()) {
    case MENU_DELETE:
      mDbManager.delete(new Note((int) info.id));
      showList();
      break;
    default:
      break;
    }
    return super.onContextItemSelected(item);
  }
  
  @Override
  protected void onDestroy() {
    mDbManager.closeDBManager();
    super.onDestroy();
  }
  
  @Override
  protected void onResume() {
    showList();
    super.onResume();
  }
  
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.list, menu);
    return true;
  }
  
  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.action_settings:
      openOptionsDialog();
      return true;
    case R.id.action_search:
      onSearchRequested();
      return true;
    case R.id.action_sync:
      dataSynchronous();
      return true;
    default:
      break;
    }
    return super.onOptionsItemSelected(item);
  }
  
  @SuppressLint("NewApi")
  public void dataSynchronous() {
    final NotificationManager mNotifyManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    final NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this).setTicker("Bnote??????????")
          .setSmallIcon(R.drawable.ic_launcher)
          .setContentTitle("Bnote??????????")
          .setContentText("???????");
    Intent intent = new Intent(this, ListActivity.class);
    intent.setAction(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    mBuilder.setContentIntent(contentIntent);
    mNotifyManager.notify(ID, mBuilder.build());
    
    new Thread(
        new Runnable() {
            @Override
            public void run() {
                int incr;
                for (incr = 0; incr <= 100; incr+=20) {
                  mBuilder.setContentText("???????? " + (int)(((double)incr / 100.0) * 100) + "% ????").setProgress(100, incr, false);
                      mNotifyManager.notify(ID, mBuilder.build());
                        try {
                            Thread.sleep(2*1000);
                        } catch (InterruptedException e) {
                            Log.d(TAG, "sleep failure");
                        }
                }
              jsonDataSynchronous();
                mBuilder.setContentText("???????").setProgress(0,0,false);
                mNotifyManager.notify(ID, mBuilder.build());
            }
        }
    ).start();
  }
  
  public void jsonDataSynchronous() {
//    JSONParser jParser = new JSONParser();
  }
  
  public void openOptionsDialog() {
    new AlertDialog.Builder(ListActivity.this)
      .setTitle(R.string.about_title)
      .setMessage(R.string.about_msg)
      .setPositiveButton(R.string.about_ok, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
        }
      })
      .show();
  }
  
  public void showList() {
    Cursor cursor = mDbManager.query();
    DateSimpleCursorAdapter adapter = (DateSimpleCursorAdapter) mListView.getAdapter();
    if (null != adapter) {
      adapter.changeCursor(cursor);
      adapter.notifyDataSetChanged();
    } else {
      String[] from = new String[]{ Note.FIELD_SNAP, Note.FIELD_PUB_DATE };
      int[] to = new int[]{ R.id.note_list_item, R.id.note_list_item_date };
      adapter = new DateSimpleCursorAdapter(this, R.layout.note_list_item, cursor, from, to);
      mListView.setAdapter(adapter);
    }
  }
  
  public void addNote(View view) {
    Intent intent = new Intent(this, EditActivity.class);
    startActivityForResult(intent, RESULT_FIRST_USER);
  }
  
  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
  }
  
}




Java Source Code List

com.rd.bnote.DBHelper.java
com.rd.bnote.DBManager.java
com.rd.bnote.DateSimpleCursorAdapter.java
com.rd.bnote.EditActivity.java
com.rd.bnote.JSONParser.java
com.rd.bnote.ListActivity.java
com.rd.bnote.Note.java
com.rd.bnote.SearchableActivity.java