Android Open Source - android-passwordKeeper Password Document Dropbox






From Project

Back to project page android-passwordKeeper.

License

The source code is released under:

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions...

If you think the Android project android-passwordKeeper 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

/**
 * Copyright 2014 Cody Munger/*from   w  w w .j  av a 2  s .  co  m*/
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.munger.passwordkeeper.struct;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.dropbox.sync.android.DbxAccount;
import com.dropbox.sync.android.DbxException;
import com.dropbox.sync.android.DbxFile;
import com.dropbox.sync.android.DbxFileInfo;
import com.dropbox.sync.android.DbxFileSystem;
import com.dropbox.sync.android.DbxPath;
import com.dropbox.sync.android.DbxException.Unauthorized;
import com.munger.passwordkeeper.MainActivity;

public class PasswordDocumentDropbox extends PasswordDocument 
{
  static
  {
    System.loadLibrary("DropboxSync");
  }
  
  private DbxAccount account;
  private DbxPath path;
  private DbxFileSystem dbfs;
  
  public PasswordDocumentDropbox(MainActivity c, String name)
  {
    super(c, name);
    
    account = c.getDropboxAccount();
    path = new DbxPath(name);
    
    try
    {
      dbfs = DbxFileSystem.forAccount(account);
    }
    catch(Unauthorized e){
      dbfs = null;
    }
  }
  
  public PasswordDocumentDropbox(MainActivity c, String name, String password)
  {
    this(c, name);
    setPassword(password);
  }
  
  public void save() 
  {
    DbxFile file = null;
    try
    {
      if (!dbfs.exists(path))
      {
        file = dbfs.create(path);
      }
      else
      {
        file = dbfs.open(path);
      }
      
      String data = toString(true);
      file.writeString(data);
    }
    catch(DbxException e1){
      
    }
    catch(IOException e2){
      
    }
    finally
    {
      if (file != null)
        file.close();
    }
  }

  public void load(boolean force) 
  {
    DbxFile file = null;
    try
    {
      if (!dbfs.exists(path))
      {
        this.details = new ArrayList<PasswordDetails>();
        return;
      }
      
      DbxFileInfo info = dbfs.getFileInfo(path);
      if (info.modifiedTime.getTime() < lastLoad && !force)
        return;
      
      file = dbfs.open(path);
      String encoded = file.readString();
      
      fromString(encoded, true);
      file.close();
    }
    catch(DbxException e1){
      
    }
    catch(IOException e2){
      
    }
    finally{
      if (file != null)
        file.close();
    }
  }

  public void delete() 
  {
    try
    {
      if (dbfs.exists(path))
        dbfs.delete(path);
    }
    catch(DbxException e2){
      
    }
  }

  public boolean testPassword() 
  {
    boolean ret = false;
    DbxFile file = null;
    
    try
    {
      if (dbfs.exists(path))
      {
        file = dbfs.open(path);
        String encoded = file.readString();
        String[] lines = encoded.split("\n");
        
        if (lines.length > 0)
        {
          String decoded = encoder.decode(lines[0]);
          if (decoded.equals("test string"))
            ret = true;
        }
      }
    }
    catch(DbxException e1){
      
    }
    catch(IOException e2){
      
    }
    finally{
      if (file != null)
        file.close();
    }
    
    return ret;
  }
  
  public PasswordDocumentDropbox convertLocal(PasswordDocumentFile file)
  {
    PasswordDocumentDropbox ret = new PasswordDocumentDropbox(file.context, file.name);
    ret.encoder = file.encoder;
    String contents = file.toString();
    ret.fromString(contents, false);
    
    return ret;
  }
  
  public static ArrayList<PasswordDocument> getList(MainActivity c)
  {
    ArrayList<PasswordDocument> ret = new ArrayList<PasswordDocument>();
    
    try
    {
      DbxAccount acct = c.getDropboxAccount();
      
      if (acct == null)
        return ret;
      
      
      DbxFileSystem dbfs = DbxFileSystem.forAccount(c.getDropboxAccount());
      List<DbxFileInfo> files = dbfs.listFolder(new DbxPath(""));
      
      for (DbxFileInfo f : files)
      {
        PasswordDocument item = new PasswordDocumentDropbox(c, f.path.getName());
        ret.add(item);
      }
    }
    catch(Unauthorized e){
      
    }
    catch(DbxException e2){
      
    }
      
    return ret;
  }
}




Java Source Code List

com.munger.passwordkeeper.MainActivity.java
com.munger.passwordkeeper.SplashScreen.java
com.munger.passwordkeeper.alert.AlertFragment.java
com.munger.passwordkeeper.alert.ConfirmFragment.java
com.munger.passwordkeeper.alert.InputFragment.java
com.munger.passwordkeeper.alert.PasswordFragment.java
com.munger.passwordkeeper.struct.AES256.java
com.munger.passwordkeeper.struct.PasswordDetails.java
com.munger.passwordkeeper.struct.PasswordDocumentDropbox.java
com.munger.passwordkeeper.struct.PasswordDocumentFile.java
com.munger.passwordkeeper.struct.PasswordDocument.java
com.munger.passwordkeeper.view.AboutFragment.java
com.munger.passwordkeeper.view.CreateFileFragment.java
com.munger.passwordkeeper.view.ImportFileFragment.java
com.munger.passwordkeeper.view.SelectFileFragment.java
com.munger.passwordkeeper.view.ViewDetailFragment.java
com.munger.passwordkeeper.view.ViewFileFragment.java
com.munger.passwordkeeper.view.widget.DetailItemWidget.java
com.munger.passwordkeeper.view.widget.FileItemWidget.java
com.munger.passwordkeeper.view.widget.TextInputWidget.java
com.munger.passwordkeeper.view.widget.TextWidget.java