Android Open Source - SalesOrder Page1 List Activity






From Project

Back to project page SalesOrder.

License

The source code is released under:

GNU General Public License

If you think the Android project SalesOrder 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.capgemini.SalesOrder;
//  w ww  .  j  a  v a 2  s . c  om
import java.util.List;

import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
//import android.os.Process;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.capgemini.SalesOrder.preferences.MainPreferencesActivity;
import com.capgemini.SalesOrder.zgwsample_srv.v0.ZGWSAMPLE_SRVRequestHandler;
import com.capgemini.SalesOrder.zgwsample_srv.v0.entitytypes.BusinessPartner;
import com.capgemini.SalesOrder.zgwsample_srv.v0.helpers.IZGWSAMPLE_SRVRequestHandlerListener;
import com.capgemini.SalesOrder.zgwsample_srv.v0.helpers.ZGWSAMPLE_SRVRequestID;
import com.sap.gwpa.proxy.RequestStatus;
import com.sap.gwpa.proxy.RequestStatus.StatusType;
import com.sap.gwpa.proxy.connectivity.authenticators.AuthenticatingException;
import com.sap.mobile.lib.request.IResponse;
import com.sap.mobile.lib.supportability.ILogger;
import com.sap.mobile.lib.supportability.Logger;

/**
 * List screen.
 */
public class Page1ListActivity extends ListActivity implements
    IZGWSAMPLE_SRVRequestHandlerListener
{
  private static final int PREFERENCE_ACTIVITY_REQUEST_CODE = 1;
  public static final String TAG = "SalesOrder";
  private ILogger logger;
  
  // result of List Request
  private List<BusinessPartner> entries;

  // need handler for callbacks to the UI thread
  final Handler mHandler = new Handler(); 

  // create runnable for posting
  final Runnable mUpdateResults = new Runnable()
  {
    public void run()
    {
      updateResultsInUi();
    }
  };

  private Page1ListAdapter listAdapter;
  
  // connectivity error message
  private String emessage = "";

  /**
   * Refresh UI from background thread
   */
  protected void updateResultsInUi()
  {
    // Error occurred
    if (entries == null)
    {
      View loadingView = findViewById(com.capgemini.SalesOrder.R.id.loading_view);
      loadingView.setVisibility(View.GONE);
      Toast.makeText(getApplicationContext(), emessage, Toast.LENGTH_LONG).show();
      finish();
      return;
    }
    
    listAdapter = new Page1ListAdapter(this);
    listAdapter.setEntries(entries);

    setListAdapter(listAdapter);
    RelativeLayout loadingView = (RelativeLayout) findViewById(com.capgemini.SalesOrder.R.id.loading_view);
    
    // No results - empty set
    if (entries.size() == 0)
    {
      ProgressBar progressBar = (ProgressBar) findViewById(com.capgemini.SalesOrder.R.id.progressBar1);
      progressBar.setVisibility(View.GONE);
      
      TextView textView = new TextView(getApplicationContext());
      textView.setText(com.capgemini.SalesOrder.R.string.no_results);
      loadingView.addView(textView);
      return;
      
    }
    
    // No error and has results
    loadingView.setVisibility(View.GONE);
    
    // show search box
    View searchBoxView = findViewById(com.capgemini.SalesOrder.R.id.linearLayout1);
    searchBoxView.setVisibility(View.VISIBLE);

    EditText searchBox = (EditText) findViewById(com.capgemini.SalesOrder.R.id.search_box);
    FilterTextWatcher filterTextWatcher = new FilterTextWatcher(listAdapter);
    searchBox.addTextChangedListener(filterTextWatcher);
    searchBox.setVisibility(View.VISIBLE);
  }

  private class FilterTextWatcher implements TextWatcher
  {
    private Page1ListAdapter adapter;

    public FilterTextWatcher(Page1ListAdapter adapter)
    {
      this.adapter = adapter;
    }

    public void afterTextChanged(Editable s)
    {
    }

    public void beforeTextChanged(CharSequence s, int start, int count, int after)
    {
    }

    public void onTextChanged(CharSequence s, int start, int before, int count)
    {
      adapter.filter(s);
    }
  }

  @Override
  protected void onDestroy()
  {
    super.onDestroy();
  }
  
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    setContentView(com.capgemini.SalesOrder.R.layout.list);
    
    // initialize the Logger
    logger = new Logger();
    
    ZGWSAMPLE_SRVRequestHandler.getInstance(getApplicationContext()).register(this,
        ZGWSAMPLE_SRVRequestID.LOAD_BUSINESSPARTNERCOLLECTION);

    // make the request
    // the response should be in "requestCompleted"
    ZGWSAMPLE_SRVRequestHandler.getInstance(getApplicationContext()).loadBusinessPartnerCollection();
  }

  @Override
  protected void onListItemClick(ListView l, View v, int position, long id)
  {
    Intent intent = new Intent(this, Page2ListActivity.class);
    BusinessPartner item = (BusinessPartner) listAdapter.getItem(position);
    
    Page2ListActivity.parentEntry = item;
    
    // navigation to next screen
    startActivity(intent);

    super.onListItemClick(l, v, position, id);
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) 
  {
    getMenuInflater().inflate(com.capgemini.SalesOrder.R.menu.main_menu, menu);
    return true;
  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item)
  {
    switch (item.getItemId())
    {
      case com.capgemini.SalesOrder.R.id.menu_item_settings:
        Intent intent = new Intent(Page1ListActivity.this,MainPreferencesActivity.class);
        startActivityForResult(intent, PREFERENCE_ACTIVITY_REQUEST_CODE);
        return true;
      case com.capgemini.SalesOrder.R.id.menu_item_logout:
        performLogout();
        return true;
      default:
        super.onOptionsItemSelected(item);
        return false;
    }
  }
  
  protected void onActivityResult(int requestCode, int resultCode, Intent data) 
  {
    if (requestCode == PREFERENCE_ACTIVITY_REQUEST_CODE) 
    {
      if (resultCode == RESULT_OK)
      {      
        if (data.getBooleanExtra(MainPreferencesActivity.PREFERENCES_CHANGED_FLAG_KEY, false))
        {
          // if Preferences state was change then clear the activities from cache and restart the login activity
          Intent intent = new Intent(Page1ListActivity.this, LoginActivity.class);
          intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
         
          startActivity(intent);
          finish();
        }       
      }
    }
  }
  
  private void performLogout()
    {
    DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() 
    {
      public void onClick(DialogInterface dialog, int which) 
      {
        switch (which)
        {
          case DialogInterface.BUTTON_POSITIVE:
            //Yes button clicked
            (new AsyncTask<Void, Void, Boolean>()
              {
                   @Override
                   protected Boolean doInBackground(Void... arg0) 
                   {
                try
                {
                       ZGWSAMPLE_SRVRequestHandler.getInstance(getApplicationContext()).logout();
                       return true;
                }
                catch (AuthenticatingException e)
                {
                       logger.e(TAG, "Logout Failed " + e.getLocalizedMessage());
                       return false;
                }
               }
               @Override
               protected void onPostExecute(Boolean result)
               {
                //   logout and return to the login page
                //  Process.killProcess(Process.myPid());
                Intent intent = new Intent(Page1ListActivity.this, LoginActivity.class);
                startActivity(intent);
                finish();
               }
            }).execute();
          break;
        }
      }
    };
     
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle(com.capgemini.SalesOrder.R.string.logout_title).setMessage(com.capgemini.SalesOrder.R.string.logout_msg).setPositiveButton(com.capgemini.SalesOrder.R.string.yes, dialogClickListener)
      .setNegativeButton(com.capgemini.SalesOrder.R.string.no, dialogClickListener).show();
  }
  

  @SuppressWarnings("unchecked")
  public void requestCompleted(ZGWSAMPLE_SRVRequestID requestID, List<?> entries, RequestStatus requestStatus) 
  {
    // first check the request's status
    StatusType type = requestStatus.getType();

    if (type == StatusType.OK) 
    {
      if (requestID.equals(ZGWSAMPLE_SRVRequestID.LOAD_BUSINESSPARTNERCOLLECTION))
      {
        // cast to the right type
        this.entries = (List<BusinessPartner>) entries;
        // post in the UI
        mHandler.post(mUpdateResults);
      }
    } 
    else 
    {
      // do some error handling
      logger.e(TAG, "The request has returned with an error");
      entries = null;
      emessage = requestStatus.getMessage();
      mHandler.post(mUpdateResults);
    }

  }

  public void authenticationNeeded(String message) 
  {
    logger.e(TAG, "Authentication is needed");
    entries = null;
    emessage = message;
    mHandler.post(mUpdateResults);
    // navigate back to login page
    Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(intent);
    finish();
  }

  public void batchCompleted(String batchID, IResponse response,
      RequestStatus requestStatus)
  {
    // here you can handle the response of the batch request.
  }     
}




Java Source Code List

com.capgemini.SalesOrder.LoginActivity.java
com.capgemini.SalesOrder.Page1ListActivity.java
com.capgemini.SalesOrder.Page1ListAdapter.java
com.capgemini.SalesOrder.Page2ListActivity.java
com.capgemini.SalesOrder.Page2ListAdapter.java
com.capgemini.SalesOrder.Page3ListActivity.java
com.capgemini.SalesOrder.Page3ListAdapter.java
com.capgemini.SalesOrder.Page4DetailsActivity.java
com.capgemini.SalesOrder.Page4DetailsAdapter.java
com.capgemini.SalesOrder.Page5DetailsActivity.java
com.capgemini.SalesOrder.Page5DetailsAdapter.java
com.capgemini.SalesOrder.Page6DetailsActivity.java
com.capgemini.SalesOrder.Page6DetailsAdapter.java
com.capgemini.SalesOrder.SplashScreen.java
com.capgemini.SalesOrder.preferences.GatewaySettingsPreferencesActivity.java
com.capgemini.SalesOrder.preferences.MainPreferencesActivity.java
com.capgemini.SalesOrder.preferences.PreferencesUtilities.java
com.capgemini.SalesOrder.preferences.SUPSettingsPreferencesActivity.java
com.capgemini.SalesOrder.zgwsample_srv.ServiceVersionConfigurations.java
com.capgemini.SalesOrder.zgwsample_srv.v0.ZGWSAMPLE_SRVRequestHandler.java
com.capgemini.SalesOrder.zgwsample_srv.v0.ZGWSAMPLE_SRVService.java
com.capgemini.SalesOrder.zgwsample_srv.v0.entitytypes.BusinessPartner.java
com.capgemini.SalesOrder.zgwsample_srv.v0.entitytypes.Contact.java
com.capgemini.SalesOrder.zgwsample_srv.v0.entitytypes.Product.java
com.capgemini.SalesOrder.zgwsample_srv.v0.entitytypes.SalesOrderLineItem.java
com.capgemini.SalesOrder.zgwsample_srv.v0.entitytypes.SalesOrder.java
com.capgemini.SalesOrder.zgwsample_srv.v0.helpers.IZGWSAMPLE_SRVRequestHandlerListener.java
com.capgemini.SalesOrder.zgwsample_srv.v0.helpers.ListenerWrapper.java
com.capgemini.SalesOrder.zgwsample_srv.v0.helpers.ZGWSAMPLE_SRVLoginAsyncTask.java
com.capgemini.SalesOrder.zgwsample_srv.v0.helpers.ZGWSAMPLE_SRVRequestID.java