Android Open Source - list-a-porter Main Activity






From Project

Back to project page list-a-porter.

License

The source code is released under:

Apache License

If you think the Android project list-a-porter 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.android.angelo.listaporter;
/* w  ww.  j a va  2s  .  c  om*/
import java.text.ParseException;
import java.util.ArrayList; 

import com.android.angelo.usedobject.ListItem;
import com.android.angelo.widget.ListAdaprterLikeGP;
import com.android.angelo.widget.ListAdapter;
import com.android.angelo.usedobject.UndoBarController; 

import android.os.Bundle;
import android.os.Parcelable;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.widget.DrawerLayout;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends ListActivity implements ListView.OnItemClickListener,
                            ListView.OnItemLongClickListener,
                            UndoBarController.UndoListener{

  
  private class DrawerListener implements ListView.OnItemClickListener{
    String[] mStringVector;
    Context mContext;

    public DrawerListener(String[] mStringVector, Context context) {
      this.mStringVector = mStringVector;
      this.mContext = context;
    }

    @Override
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
          Toast.makeText(mContext, "DrawerList item clicked: "+mStringVector[position],
              Toast.LENGTH_LONG).show();
          mDrawer.closeDrawer(mDrawerList);
      }
  }
    
  ArrayList<ListItem> mData; 
//  ListAdapter mAdapter;
  ListAdaprterLikeGP mAdapter;
  DrawerLayout mDrawer;
  ListView mDrawerList;
  ActionBarDrawerToggle mActionBarDrawerToggle;
  
  UndoBarController mUndoBarController;
  
   
  String[] mStringVector;
  CharSequence mTitle;
  CharSequence mDrawerTitle;
  boolean isDrawerVisible;
  static boolean isServiceStarted = false;
  
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mTitle = getTitle();
    mDrawerTitle = mTitle + " Drawer";
        
    setNavigationDrawer();
    setDataArrayList(); 
    
    
    
    getActionBar().setDisplayHomeAsUpEnabled(true);
        getActionBar().setHomeButtonEnabled(true);
    
        mUndoBarController = new UndoBarController(findViewById(R.id.undobar), this);
        getListView().setOnItemClickListener(this);
        getListView().setOnItemLongClickListener(this); 
        

  }
  
  @Override
    protected void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
        
        try{
        Bundle bun = getIntent().getExtras();
        ListItem item = (ListItem) bun.getParcelable("newItem");
        mData.add(item);
        }catch(NullPointerException ex){
          
        }
        
        // Sync the toggle state after onRestoreInstanceState has occurred.
        mActionBarDrawerToggle.syncState();
    }

  
  @Override 
  public void onResume(){
    super.onResume();
    boolean orientation = (getResources().getConfiguration().orientation==Configuration.ORIENTATION_LANDSCAPE)?
        true:false;
    mAdapter = new ListAdaprterLikeGP(this, mData,orientation);
    setListAdapter(mAdapter);
    if(!isServiceStarted) startNotificationService();


  }
  
  @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    Intent intent = new Intent();
    Bundle bundle = new Bundle();
    bundle.putParcelable("item", mData.get(position));
    intent.putExtras(bundle);
        intent.setClass(MainActivity.this, ShowItemActivity.class);
        startActivityForResult(intent, 0);
    }
  
  @Override
  public boolean onItemLongClick(AdapterView<?> parent, View view, int position,
      long id) {
    mUndoBarController.showUndoBar(
                false,
                getString(R.string.undobar_sample_message),
                null);
    return true;
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
  }
  
  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
      // Handle presses on the action bar items
    if (mActionBarDrawerToggle.onOptionsItemSelected(item)) {
            return true;
          }else{ 
            switch (item.getItemId()) {
              case R.id.action_settings:
                openSettings();
              return true;
          default:
              return super.onOptionsItemSelected(item);
            }
          }
  }
  
   @Override
   public boolean onPrepareOptionsMenu(Menu menu) {
    // If the nav drawer is open, hide action items related to the content view          
        return super.onPrepareOptionsMenu(menu);
   }
   
   @Override
   public void onBackPressed(){
     if(isDrawerVisible){
       mDrawer.closeDrawer(mDrawerList);
     
     }else{
       super.onBackPressed();
     }
   }
   
   @Override
  public void onUndo(Parcelable token) {
    // TODO Auto-generated method stub
      
  }
  
  private void openSettings(){
    Intent intent = new Intent();
        intent.setClass(MainActivity.this, SettingsActivity.class);
        startActivityForResult(intent, 0); 
  }
  
  private void setNavigationDrawer(){
     isDrawerVisible = false;
     mDrawer = (DrawerLayout) findViewById(R.id.drawer_layout);
       mActionBarDrawerToggle = new ActionBarDrawerToggle(this, mDrawer, R.drawable.ic_drawer, 
              R.string.drawer_open, R.string.drawer_close){
            /** Called when a drawer has settled in a completely closed state. */
              public void onDrawerClosed(View view) {
                  getActionBar().setTitle(mTitle);
                  isDrawerVisible = false;
                  invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
              }

              /** Called when a drawer has settled in a completely open state. */
              public void onDrawerOpened(View drawerView) {
                  getActionBar().setTitle(mDrawerTitle);
                  isDrawerVisible = true;
                  invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
              }
          };
       mDrawer.setDrawerListener(mActionBarDrawerToggle);
       mDrawer.setDrawerListener(mActionBarDrawerToggle);
       mDrawerList = (ListView) findViewById(R.id.left_drawer);
          
       mStringVector = getResources().getStringArray(R.array.toast_string);
          
       mDrawerList.setAdapter(new ArrayAdapter<String>(this, R.layout.drawer_list_item,mStringVector));
       mDrawerList.setOnItemClickListener(new DrawerListener(mStringVector, this));
          
          
  }
  
  private void startNotificationService(){
    isServiceStarted = true;
    Intent service = new Intent(this,NotificationService.class);
    startService(service);
  }
  
  
  //make a static list
  private void setDataArrayList(){
    mData = new ArrayList<ListItem>();
    for(int i = 1;i<21;i++){
      
      try {
        mData.add(new ListItem("Item "+i, "Object Item  #"+i, 
            "22/03/2013", "100.182739273737265541"));
        Log.d("added_item", "item add "+i);
      } catch (ParseException e) {
        Log.e("nodata", "nodata");
      }
      
    }
    Log.d("size data", ""+mData.size());
  }
  

  

  

}




Java Source Code List

com.android.angelo.listaporter.ListAdapter.java
com.android.angelo.listaporter.MainActivity.java
com.android.angelo.listaporter.NotificationService.java
com.android.angelo.listaporter.SettingsActivity.java
com.android.angelo.listaporter.SettingsFragment.java
com.android.angelo.listaporter.ShowItemActivity.java
com.android.angelo.listaporter.ShowItemFragment.java
com.android.angelo.usedobject.DrawerListener.java
com.android.angelo.usedobject.ListItem.java
com.android.angelo.usedobject.UndoBarController.java
com.android.angelo.widget.ListAdaprterLikeGP.java
com.android.angelo.widget.ListAdapter.java