Android Open Source - SMSBarrage Barrage List






From Project

Back to project page SMSBarrage.

License

The source code is released under:

Apache License

If you think the Android project SMSBarrage 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.jakewharton.smsbarrage.ui;
/*from   w  ww  .  ja  va 2s .com*/
import com.jakewharton.smsbarrage.R;

import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.DialogInterface.OnClickListener;
import android.database.Cursor;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.ListView;

public class BarrageList extends ListActivity {
  private static final String TAG="BarrageList";
  
  //Options Menu
  private static final int MENU_COMPOSE_NEW_BARRAGE = 0;
  private static final int MENU_PAUSE_ALL = 1;
  private static final int MENU_DELETE_ALL = 2;
  private static final int MENU_PREFERENCES = 3;
  private static final int MENU_ABOUT = 4;
  
  //Context Menu
  private static final int MENU_EDIT = 0;
  private static final int MENU_PAUSE = 1;
  private static final int MENU_DELETE = 2;
  
  private Cursor mCursor;
  
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        setContentView(R.layout.barrage_list);
        ListView listView = getListView();
        LayoutInflater inflater = LayoutInflater.from(this);
        BarrageHeaderView headerView = (BarrageHeaderView)inflater.inflate(R.layout.barrage_header_view, listView, false);
        headerView.bind(getString(R.string.menu_new_barrage), getString(R.string.create_new_barrage));
        listView.addHeaderView(headerView, null, true);
        
        //UI Preview
        /*BarrageHeaderView item1 = (BarrageHeaderView)inflater.inflate(R.layout.barrage_header_view, listView, false);
        item1.bind(this, new BarrageHeader("Testing 1, 2, 3...", BarrageHeader.STATUS_RUNNING, 43, 12));
        listView.addHeaderView(item1, null, true);
        BarrageHeaderView item4 = (BarrageHeaderView)inflater.inflate(R.layout.barrage_header_view, listView, false);
        item4.bind(this, new BarrageHeader("Another Barrage", BarrageHeader.STATUS_PAUSED, 123, 64));
        listView.addHeaderView(item4, null, true);
        BarrageHeaderView item2 = (BarrageHeaderView)inflater.inflate(R.layout.barrage_header_view, listView, false);
        item2.bind(this, new BarrageHeader("Pie Day", BarrageHeader.STATUS_QUEUED, 43, 12));
        listView.addHeaderView(item2, null, true);
        BarrageHeaderView item3 = (BarrageHeaderView)inflater.inflate(R.layout.barrage_header_view, listView, false);
        item3.bind(this, new BarrageHeader("Some Name", BarrageHeader.STATUS_DRAFT, 160, 12));
        listView.addHeaderView(item3, null, true);*/
        
        setListAdapter(new BarrageListAdapter(this, null, true));
        
        if (savedInstanceState != null) {
          //do something
        }
    }

  @Override
  protected void onListItemClick(ListView l, View v, int position, long id) {
    if (position == 0) {
      composeNewBarrage();
    }
    else if (v instanceof BarrageHeaderView) {
      BarrageHeaderView bhv = (BarrageHeaderView)v;
      BarrageHeader bh = bhv.getHeader();
      
      editBarrage(bh.getID());
    }
  }

  private void editBarrage(int ID) {
    Intent edit = new Intent(this, Compose.class);
    edit.putExtra("id", ID);
    startActivity(edit);
  }

  private void composeNewBarrage() {
    Intent composeBarrage = new Intent(this, Compose.class);
    startActivity(composeBarrage);
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    menu.clear();
    
    menu.add(0, MENU_COMPOSE_NEW_BARRAGE, 0, R.string.menu_new_barrage).setIcon(R.drawable.compose);
    if ((mCursor != null) && (mCursor.getCount() > 0)) {
      menu.add(0, MENU_PAUSE_ALL, 0, R.string.menu_pause_all);//.setIcon(...)
      menu.add(0, MENU_DELETE_ALL, 0, R.string.menu_delete_all).setIcon(R.drawable.delete);
    }
    menu.add(0, MENU_PREFERENCES, 0, R.string.menu_preferences).setIcon(R.drawable.preferences);
    menu.add(0, MENU_ABOUT, 0, R.string.menu_about);//.setIcon(...)
    return true;
  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
      case MENU_COMPOSE_NEW_BARRAGE:
        composeNewBarrage();
        break;
      case MENU_PAUSE_ALL:
        doPauseAll();
        break;
      case MENU_DELETE_ALL:
        confirmDeleteDialog(new DeleteThreadListener(-1), true);
        break;
      case MENU_PREFERENCES:
        Intent preferences = new Intent(this, Preferences.class);
        startActivityIfNeeded(preferences, -1);
        break;
      case MENU_ABOUT:
        Intent about = new Intent(this, About.class);
        startActivityIfNeeded(about, -1);
        break;
      default:
        return true;
    }
    return false;
  }
  private void doPauseAll() {
    //TODO: pause all
    return;
  }

  private void confirmDeleteDialog(OnClickListener listener, boolean deleteAll) {
    new AlertDialog.Builder(this)
      .setTitle(R.string.confirm_delete_title)
      .setCancelable(true)
      .setPositiveButton(R.string.yes, listener)
      .setNegativeButton(R.string.no, null)
      .setMessage(deleteAll ? R.string.confirm_delete_all : R.string.confirm_delete)
      .show();
  }

  @Override
  public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
    menu.clear();
    
    menu.add(0, MENU_EDIT, 0, R.string.menu_edit);
    menu.add(0, MENU_PAUSE, 0, R.string.menu_pause);
    menu.add(0, MENU_DELETE, 0, R.string.menu_delete);
  }
  
  @Override
  public boolean onContextItemSelected(MenuItem item) {
    switch (item.getItemId()) {
      case MENU_EDIT:
        break;
      case MENU_PAUSE:
        break;
      case MENU_DELETE:
        break;
      default:
        return true;
    }
    return false;
  }

  @Override
  protected void onStart() {
    super.onStart();
  }
  
  private class DeleteThreadListener implements OnClickListener {
    private long mID;
    
    public DeleteThreadListener(long ID) {
      mID = ID;
      
      if (ID != -1) {
        
      }
      else {
        
      }
    }
    
    public void onClick(DialogInterface dialog, int whichButton) {
      
    }
  }
}




Java Source Code List

android.provider.Telephony.java
android.text.util.Regex.java
com.android.internal.database.ArrayListCursor.java
com.android.mms.ui.RecipientList.java
com.android.mms.ui.RecipientsAdapter.java
com.android.mms.ui.RecipientsEditor.java
com.google.android.mms.util.SqliteWrapper.java
com.jakewharton.smsbarrage.SMSBarrage.java
com.jakewharton.smsbarrage.provider.BarrageProvider.java
com.jakewharton.smsbarrage.transaction.BarrageService.java
com.jakewharton.smsbarrage.transaction.EventReceiver.java
com.jakewharton.smsbarrage.ui.About.java
com.jakewharton.smsbarrage.ui.BarrageHeaderView.java
com.jakewharton.smsbarrage.ui.BarrageHeader.java
com.jakewharton.smsbarrage.ui.BarrageListAdapter.java
com.jakewharton.smsbarrage.ui.BarrageList.java
com.jakewharton.smsbarrage.ui.Compose.java
com.jakewharton.smsbarrage.ui.Preferences.java
com.jakewharton.smsbarrage.ui.ViewBarrage.java