EditActivity.java :  » Password » passdroid » com » kodholken » passdroid » Android Open Source

Android Open Source » Password » passdroid 
passdroid » com » kodholken » passdroid » EditActivity.java
/*    
    This file is part of the Passdroid password management software.
    
    Copyright (C) 2009-2010  Magnus Eriksson <eriksson.mag@gmail.com>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

package com.kodholken.passdroid;

import com.kodholken.passdroid.R;

import android.content.ContentValues;
import android.content.Intent;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class EditActivity extends TimeoutActivity {
  private Button saveButton;
  private Button cancelButton;
  private Button generateButton;
  private EditText password;
  
  private Intent generateIntent;
  private long passwordId;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.edit);
    
    TextView title = (TextView) this.findViewById(R.id.header);
    title.setText(R.string.edit_title);
    
    Bundle extras = getIntent().getExtras();

    passwordId = extras.getLong("id");
    
    ((TextView) findViewById(R.id.system)).setText(extras.getString("system"));
    ((TextView) findViewById(R.id.username)).setText(extras.getString("username"));
    
    password = (EditText) findViewById(R.id.password);
    password.setText(extras.getString("password"));

    saveButton = (Button) this.findViewById(R.id.save_button);
    saveButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        updatePassword();
        Session.getInstance().setNeedReload(true);
        Utils.debug("Save Clicked");
      }
    });
    
    cancelButton = (Button) this.findViewById(R.id.cancel_button);
    cancelButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        finish();
      }
    });
    
    setupGenerateButton();
  }

  private void updatePassword() {
    String system   = ((TextView) findViewById(R.id.system)).getText().toString();
    String username = ((TextView) findViewById(R.id.username)).getText().toString();
    String password = ((TextView) findViewById(R.id.password)).getText().toString();
    
    ContentValues values = new ContentValues();
    
    PasswordEntry entry = new PasswordEntry();
    entry.setDecSystem(system);
    entry.setDecUsername(username);
    entry.setDecPassword(password);
    entry.encryptAll(Session.getInstance().getKey());
    
    values.put("system",   entry.getEncSystem());  
    values.put("username", entry.getEncUsername());
    values.put("password", entry.getEncPassword());
    
    PasswordData passwordData = new PasswordData(this);
    SQLiteDatabase db = passwordData.getWritableDatabase();
    
    try {
      db.update("data", values, "id=" + passwordId, null);
    } catch (SQLException ex) {
      ex.printStackTrace();
    }
    db.close();
    
    finish();
  }
  
  private void setupGenerateButton() {
    generateButton = (Button) findViewById(R.id.generate_button);
    generateButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        createGenerateActivity();
      }
    });
  }
  
  private void createGenerateActivity() {
    generateIntent = new Intent(this, GeneratePasswordActivity.class);
    startActivityForResult(generateIntent, 0x42);
  }
  
  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    //super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == 1) {
      this.password.setText(GeneratePasswordActivity.getGeneratedPassword());
    }
  }
}
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.