SmsFilter.java :  » SMS » cooky-sms » net » quindu » android » smsfilter » Android Open Source

Android Open Source » SMS » cooky sms 
cooky sms » net » quindu » android » smsfilter » SmsFilter.java
package net.quindu.android.smsfilter;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.app.TabActivity;
import android.content.ContentValues;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnLongClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TabHost;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class SmsFilter extends TabActivity {
  
  
  
  ArrayAdapter<MenuElement> inboxList;
  ArrayAdapter<MenuElement> filterList;
  SQLiteDatabase db;
  TabHost mTabHost;
  ListView folderView;
  ListView filterView;
  protected static final int SUB_ACTIVITY_FOLDER_DETAIL = 100;
  
  protected static final int SUB_ACTIVITY_FILTER_DETAIL = 200;
  protected static final int SUB_ACTIVITY_FILTER_CONDITIONS = 201;
  
  
  
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);        

        
        
        setContentView(R.layout.main);

        mTabHost = getTabHost();
        
        //mTabHost.addTab(mTabHost.newTabSpec("tabFolders").setIndicator("Folders").setContent(R.id.folderView));
        mTabHost.addTab(mTabHost.newTabSpec("tabFilters").setIndicator("Filters").setContent(R.id.filterView));
        
        mTabHost.setCurrentTab(0);        
        findViewById(R.id.folderView).setVisibility(View.GONE);
        //-
        
        DatabaseHelper dbHelper = new DatabaseHelper(this);
        db = dbHelper.getReadableDatabase();
        
        
        // ==========================
        // folders
        
        folderView = (ListView) findViewById(R.id.folderView);
        
        populateFoldersListItems();
        folderView.setAdapter(inboxList);
        
    
        folderView.setOnItemClickListener(new OnItemClickListener() {
      @Override
      public void onItemClick(AdapterView<?> parent, View view, int position,long arg3) {    
        
        Intent i = new Intent(SmsFilter.this,FilterActivity.class);
        startActivityForResult(i, SUB_ACTIVITY_FOLDER_DETAIL);
      
      }
          });
        
        
        // ==========================
        // filters
        
        filterView = (ListView) findViewById(R.id.filterView);
        filterList = new ArrayAdapter<MenuElement>(this, android.R.layout.simple_list_item_1);
        filterView.setAdapter(filterList);
        populateFilterListItems();
        
        
        
        
        
        filterView.setOnItemClickListener(new OnItemClickListener() {
      @Override
      public void onItemClick(AdapterView<?> parent, View view, int position,long arg3) {    
        
        Intent i = new Intent(SmsFilter.this,FilterActivity.class);
        Bundle bundle = new Bundle();
        bundle.putInt("id", (int) filterList.getItem(position).getId());
        i.putExtras(bundle);
        startActivityForResult(i, SUB_ACTIVITY_FILTER_DETAIL);      
      }
          });        
        
        /*
        //4 test
    Intent i = new Intent(SmsFilter.this,FilterActivity.class);
    startActivityForResult(i, SUB_ACTIVITY_REQUEST_CODE);
    */
        
    }


  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    
      menu.add(0, 1, 0, "New");
    
    //menu.add(0, 2, 0, "Save");
    //menu.add(0, 3, 0, "Back");
    return super.onCreateOptionsMenu(menu);
  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    
    // folders
    if(mTabHost.getCurrentTab() == 0){
      switch (item.getItemId()) {
      case 1:
        showAddDialog();
      break;
      }
      
    // filters
    }else{
      switch (item.getItemId()) {
      case 1:
        showAddDialog();
      break;
      }
      
    }
    
    
    return super.onOptionsItemSelected(item);
  }
  
  private void showAddDialog(){
    final AlertDialog.Builder alert = new AlertDialog.Builder(this);
    final EditText input = new EditText(this);
    alert.setView(input);
    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int whichButton) {
        String value = input.getText().toString().trim();
        addFolder(value);
      }
    });

    alert.setNegativeButton("Cancel",
        new DialogInterface.OnClickListener() {
          public void onClick(DialogInterface dialog, int whichButton) {
            dialog.cancel();
          }
        });
    alert.show();    
  }
  
  private void populateFoldersListItems(){
        Cursor cursor = db.query("sms_folder", new String[] {"folder_id", "title"}, null , null, null, null, null);
        inboxList = new ArrayAdapter<MenuElement>(this, android.R.layout.simple_list_item_1);
        while(cursor.moveToNext()){                    
          inboxList.add(new MenuElement(cursor.getString(1), cursor.getInt(0)));          
        }    
  }
  
  private void populateFilterListItems(){
        Cursor cursor = db.query("sms_filter", new String[] {"filter_id", "title"}, null , null, null, null, null);
      filterList.clear();
        while(cursor.moveToNext()){                    
          filterList.add(new MenuElement(cursor.getString(1), cursor.getInt(0)));          
        }
        
        
        filterList.notifyDataSetChanged();               
  }  
  
  private void addFolder(String title){
        ContentValues initialValues = new ContentValues();
        initialValues.put("title", title);        
        db.insert("sms_folder", null, initialValues);
        populateFoldersListItems();            
  }

  private void showMsg(String msg) {
    Toast toast = Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG);
    toast.setGravity(Gravity.CENTER, toast.getXOffset() / 2, toast.getYOffset() / 2);
    toast.show();
  }
  
  
    
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);           
    if(requestCode == SUB_ACTIVITY_FILTER_DETAIL){        
        populateFilterListItems();
        }
    
  }  
    
  

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.