ComptesEditActivity.java :  » UnTagged » freeboxmobile » org » madprod » freeboxmobile » home » Android Open Source

Android Open Source » UnTagged » freeboxmobile 
freeboxmobile » org » madprod » freeboxmobile » home » ComptesEditActivity.java
package org.madprod.freeboxmobile.home;

import org.madprod.freeboxmobile.Constants;
import org.madprod.freeboxmobile.FBMNetTask;
import org.madprod.freeboxmobile.R;

import com.google.android.apps.analytics.GoogleAnalyticsTracker;

import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

/**
*
* @author Olivier Rosello
* $Id: ComptesEditActivity.java 622 2010-09-28 14:40:32Z olivier.rosello34 $
* 
*/

public class ComptesEditActivity extends Activity implements Constants
{
  private EditText mTitleText;
    private EditText mUserText;
    private EditText mPasswordText;
    private Spinner mSpinnerType;
    private Long mRowId;
    private ComptesDbAdapter mDbHelper;

  GoogleAnalyticsTracker tracker;
  
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        
    tracker = GoogleAnalyticsTracker.getInstance();
    tracker.start(ANALYTICS_MAIN_TRACKER, 20, this);
    tracker.trackPageView("Home/CompteEdit");
    
        FBMNetTask.register(this);

      mDbHelper = new ComptesDbAdapter(ComptesEditActivity.this);
      mDbHelper.open();

        setContentView(R.layout.comptes_edit);
        setTitle(getString(R.string.app_name)+" - Edition Compte Freebox");

        mTitleText = (EditText) findViewById(R.id.comptes_edit_nom);
        mUserText = (EditText) findViewById(R.id.comptes_edit_user);
        mPasswordText = (EditText) findViewById(R.id.comptes_edit_password);

        Button confirmButton = (Button) findViewById(R.id.comptes_button_ok);
        Button cancelButton = (Button) findViewById(R.id.comptes_button_cancel);

        mSpinnerType = (Spinner) findViewById(R.id.SpinnerType);
        mSpinnerType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
        {
      @Override
      public void onItemSelected(AdapterView<?> parent, View v, int i, long l)
      {
        Log.d(TAG,"TYPE : "+i);
        TextView t02d = (TextView) findViewById(R.id.TextView02d);
        TextView tFO = (TextView) findViewById(R.id.TextViewFO);
        switch (i)
        {
          case COMPTES_TYPE_ADSL:
            tFO.setVisibility(View.GONE);
            t02d.setText(getString(R.string.comptes_edit_login_desc_adsl));
            break;
          case COMPTES_TYPE_FO:
            tFO.setVisibility(View.VISIBLE);
            t02d.setText(getString(R.string.comptes_edit_login_desc_fo));
            break;
        }
      }

      @Override
      public void onNothingSelected(AdapterView<?> arg0)
      {
      }
    });
        mRowId = savedInstanceState != null ? savedInstanceState.getLong(ComptesDbAdapter.KEY_ROWID) : null;

        if (mRowId == null)
        {
      Bundle extras = getIntent().getExtras();            
      mRowId = extras != null ? extras.getLong(ComptesDbAdapter.KEY_ROWID) : null;
        }
        if (mRowId != null && mRowId == -1)
        {
          mRowId = null;
          populateFieldsFromSaved(savedInstanceState);
        }
        else
        {
          populateFieldsFromDb();
        }

        cancelButton.setOnClickListener(new Button.OnClickListener()
        {
          public void onClick(View view)
          {
            finish();
          }
        });
        confirmButton.setOnClickListener(new Button.OnClickListener()
        {
            public void onClick(View view)
            {
                String title = mTitleText.getText().toString();
                String user;
                int type = mSpinnerType.getSelectedItemPosition();
                String password = mPasswordText.getText().toString();
                if (type == COMPTES_TYPE_FO)
                {
                  user = "FO" + mUserText.getText().toString();
                }
                else
                {
                  user = mUserText.getText().toString();
                }
                if (!title.equals("") && !user.equals("") && !password.equals(""))
                {
                  if (mDbHelper.isValuePresent(ComptesDbAdapter.KEY_TITLE, title) &&
                    !mDbHelper.isMatch(mRowId, ComptesDbAdapter.KEY_TITLE, title))
                  {
                      Toast t = Toast.makeText(ComptesEditActivity.this, "Un compte avec ce nom existe dj !",Toast.LENGTH_LONG);
                      t.show();
                  }
                  else if (mDbHelper.isValuePresent(ComptesDbAdapter.KEY_USER, user) &&
                      !mDbHelper.isMatch(mRowId, ComptesDbAdapter.KEY_USER, user))
                  {
                      Toast t = Toast.makeText(ComptesEditActivity.this, "Un compte avec cet identifiant existe dj !",Toast.LENGTH_LONG);
                      t.show();                    
                  }
                  else
                  {
                    // TODO : peut tre ne pas appeler ManageCompte si le compte n'est pas le premier
                    new ManageCompte(new ComptePayload(title, user, password, type, mRowId, false)).execute();
                  }
                }
                else
                {
                  Toast t = Toast.makeText(ComptesEditActivity.this, "Veuillez remplir tous les champs !",Toast.LENGTH_LONG);
                  t.show();
                }
            }
        });
    }

    private void populateFieldsFromSaved(Bundle b)
    {
        if (b != null)
        {
            mTitleText.setText(b.getString(ComptesDbAdapter.KEY_TITLE));
            mUserText.setText(b.getString(ComptesDbAdapter.KEY_USER));
            mPasswordText.setText(b.getString(ComptesDbAdapter.KEY_PASSWORD));
            mSpinnerType.setSelection(b.getInt(ComptesDbAdapter.KEY_LINETYPE));
        }
    }

    private void populateFieldsFromDb()
    {
        if (mRowId != null)
        {
            Cursor compte = mDbHelper.fetchCompte(mRowId);
            mTitleText.setText(compte.getString(compte.getColumnIndexOrThrow(ComptesDbAdapter.KEY_TITLE)));
            mUserText.setText(compte.getString(compte.getColumnIndexOrThrow(ComptesDbAdapter.KEY_USER)));
            mPasswordText.setText(compte.getString(compte.getColumnIndexOrThrow(ComptesDbAdapter.KEY_PASSWORD)));            
            String type =  compte.getString(compte.getColumnIndexOrThrow(ComptesDbAdapter.KEY_LINETYPE));
            if (type.equals(LINE_TYPE_FBXIPADSL) || type.equals(LINE_TYPE_FBXDEGROUPE))
            {
                mSpinnerType.setSelection(COMPTES_TYPE_ADSL, true);              
            }
            else
            {
              mSpinnerType.setSelection(COMPTES_TYPE_FO, true);
            }  
            compte.close();
        }
    }
    
    @Override
    protected void onSaveInstanceState(Bundle outState)
    {
        super.onSaveInstanceState(outState);
        if (mRowId != null)
        {
          outState.putLong(ComptesDbAdapter.KEY_ROWID, mRowId);
        }
        else
        {
          outState.putLong(ComptesDbAdapter.KEY_ROWID, -1);
        }
      outState.putString(ComptesDbAdapter.KEY_TITLE, mTitleText.getText().toString());
      outState.putString(ComptesDbAdapter.KEY_USER, mUserText.getText().toString());
      outState.putString(ComptesDbAdapter.KEY_PASSWORD, mPasswordText.getText().toString());
      outState.putInt(ComptesDbAdapter.KEY_LINETYPE, mSpinnerType.getSelectedItemPosition());
    }

    @Override
    protected void onPause()
    {
        super.onPause();
        // TODO : checker si on fait un screen rotation, est-ce que ca efface les donnes ?
    }

    @Override
    protected void onResume()
    {
        super.onResume();
    }

    @Override
    protected void onDestroy()
    {
      FBMNetTask.unregister(this);
      mDbHelper.close();
      tracker.stop();
        super.onDestroy();
    }
}
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.