Search in sources :

Example 1 with RunnableOnFinish

use of com.keepassdroid.database.edit.RunnableOnFinish in project KeePassDX by Kunzisoft.

the class EntryEditActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.entry_edit);
    Toolbar toolbar = findViewById(R.id.toolbar);
    toolbar.setTitle(getString(R.string.app_name));
    setSupportActionBar(toolbar);
    assert getSupportActionBar() != null;
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    scrollView = findViewById(R.id.entry_scroll);
    scrollView.setScrollBarStyle(View.SCROLLBARS_INSIDE_INSET);
    entryTitleView = findViewById(R.id.entry_title);
    entryUserNameView = findViewById(R.id.entry_user_name);
    entryUrlView = findViewById(R.id.entry_url);
    entryPasswordView = findViewById(R.id.entry_password);
    entryConfirmationPasswordView = findViewById(R.id.entry_confpassword);
    entryCommentView = findViewById(R.id.entry_comment);
    entryExtraFieldsContainer = findViewById(R.id.advanced_container);
    // Likely the app has been killed exit the activity
    Database db = App.getDB();
    if (!db.Loaded()) {
        finish();
        return;
    }
    Intent intent = getIntent();
    byte[] uuidBytes = intent.getByteArrayExtra(KEY_ENTRY);
    PwDatabase pm = db.pm;
    if (uuidBytes == null) {
        PwGroupId parentId = (PwGroupId) intent.getSerializableExtra(KEY_PARENT);
        PwGroup parent = pm.groups.get(parentId);
        mEntry = PwEntry.getInstance(parent);
        mIsNew = true;
    } else {
        UUID uuid = Types.bytestoUUID(uuidBytes);
        mEntry = pm.entries.get(uuid);
        mIsNew = false;
        fillData();
    }
    View iconButton = findViewById(R.id.icon_button);
    iconButton.setOnClickListener(v -> IconPickerDialogFragment.launch(EntryEditActivity.this));
    // Generate password button
    View generatePassword = findViewById(R.id.generate_button);
    generatePassword.setOnClickListener(v -> {
        GeneratePasswordDialogFragment generatePasswordDialogFragment = new GeneratePasswordDialogFragment();
        generatePasswordDialogFragment.show(getSupportFragmentManager(), "PasswordGeneratorFragment");
    });
    // Save button
    View save = findViewById(R.id.entry_save);
    save.setOnClickListener(v -> {
        if (!validateBeforeSaving()) {
            return;
        }
        mCallbackNewEntry = populateNewEntry();
        OnFinish onFinish = new AfterSave();
        EntryEditActivity act = EntryEditActivity.this;
        RunnableOnFinish task;
        if (mIsNew) {
            task = new AddEntry(act, App.getDB(), mCallbackNewEntry, onFinish);
        } else {
            task = new UpdateEntry(act, App.getDB(), mEntry, mCallbackNewEntry, onFinish);
        }
        ProgressTask pt = new ProgressTask(act, task, R.string.saving_database);
        pt.run();
    });
    if (mEntry.allowExtraFields()) {
        View add = findViewById(R.id.add_new_field);
        add.setVisibility(View.VISIBLE);
        add.setOnClickListener(v -> {
            EntryEditNewField ees = new EntryEditNewField(EntryEditActivity.this);
            ees.setData("", new ProtectedString(false, ""));
            entryExtraFieldsContainer.addView(ees);
            // Scroll bottom
            scrollView.post(() -> scrollView.fullScroll(ScrollView.FOCUS_DOWN));
        });
    }
}
Also used : ProgressTask(com.keepassdroid.tasks.ProgressTask) UpdateEntry(com.keepassdroid.database.edit.UpdateEntry) PwDatabase(com.keepassdroid.database.PwDatabase) RunnableOnFinish(com.keepassdroid.database.edit.RunnableOnFinish) Intent(android.content.Intent) OnFinish(com.keepassdroid.database.edit.OnFinish) RunnableOnFinish(com.keepassdroid.database.edit.RunnableOnFinish) EntryEditNewField(com.keepassdroid.view.EntryEditNewField) View(android.view.View) ScrollView(android.widget.ScrollView) AddEntry(com.keepassdroid.database.edit.AddEntry) GeneratePasswordDialogFragment(com.keepassdroid.dialogs.GeneratePasswordDialogFragment) PwGroupId(com.keepassdroid.database.PwGroupId) PwDatabase(com.keepassdroid.database.PwDatabase) Database(com.keepassdroid.database.Database) ProtectedString(com.keepassdroid.database.security.ProtectedString) PwGroup(com.keepassdroid.database.PwGroup) UUID(java.util.UUID) Toolbar(android.support.v7.widget.Toolbar)

Aggregations

Intent (android.content.Intent)1 Toolbar (android.support.v7.widget.Toolbar)1 View (android.view.View)1 ScrollView (android.widget.ScrollView)1 Database (com.keepassdroid.database.Database)1 PwDatabase (com.keepassdroid.database.PwDatabase)1 PwGroup (com.keepassdroid.database.PwGroup)1 PwGroupId (com.keepassdroid.database.PwGroupId)1 AddEntry (com.keepassdroid.database.edit.AddEntry)1 OnFinish (com.keepassdroid.database.edit.OnFinish)1 RunnableOnFinish (com.keepassdroid.database.edit.RunnableOnFinish)1 UpdateEntry (com.keepassdroid.database.edit.UpdateEntry)1 ProtectedString (com.keepassdroid.database.security.ProtectedString)1 GeneratePasswordDialogFragment (com.keepassdroid.dialogs.GeneratePasswordDialogFragment)1 ProgressTask (com.keepassdroid.tasks.ProgressTask)1 EntryEditNewField (com.keepassdroid.view.EntryEditNewField)1 UUID (java.util.UUID)1