aboutsummaryrefslogtreecommitdiffstats
path: root/src/org/apg/ui/widget/SectionView.java
diff options
context:
space:
mode:
authorDominik <dominik@dominikschuermann.de>2012-03-10 20:22:29 +0100
committerDominik <dominik@dominikschuermann.de>2012-03-10 20:22:29 +0100
commit630780cae4683e8ba403b28da84f963221d80ee3 (patch)
tree74ee9eac3a4c5640451e88b29a1b3350ca538def /src/org/apg/ui/widget/SectionView.java
parent3fd5a55516eace832d2d2300ebf7a2579ab9c6dc (diff)
downloadopen-keychain-630780cae4683e8ba403b28da84f963221d80ee3.tar.gz
open-keychain-630780cae4683e8ba403b28da84f963221d80ee3.tar.bz2
open-keychain-630780cae4683e8ba403b28da84f963221d80ee3.zip
new directory structure
Diffstat (limited to 'src/org/apg/ui/widget/SectionView.java')
-rw-r--r--src/org/apg/ui/widget/SectionView.java335
1 files changed, 0 insertions, 335 deletions
diff --git a/src/org/apg/ui/widget/SectionView.java b/src/org/apg/ui/widget/SectionView.java
deleted file mode 100644
index 220699124..000000000
--- a/src/org/apg/ui/widget/SectionView.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/*
- * Copyright (C) 2010 Thialfihar <thi@thialfihar.org>
- *
- * 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 org.apg.ui.widget;
-
-import org.apg.Apg;
-import org.apg.Id;
-import org.apg.ui.widget.Editor.EditorListener;
-import org.apg.util.Choice;
-import org.spongycastle.openpgp.PGPException;
-import org.spongycastle.openpgp.PGPSecretKey;
-import org.apg.R;
-
-import android.app.AlertDialog;
-import android.app.ProgressDialog;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.util.AttributeSet;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-import android.widget.EditText;
-import android.widget.LinearLayout;
-import android.widget.Spinner;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import java.security.InvalidAlgorithmParameterException;
-import java.security.InvalidParameterException;
-import java.security.NoSuchAlgorithmException;
-import java.security.NoSuchProviderException;
-import java.util.Vector;
-
-public class SectionView extends LinearLayout implements OnClickListener, EditorListener, Runnable {
- private LayoutInflater mInflater;
- private View mAdd;
- private ViewGroup mEditors;
- private TextView mTitle;
- private int mType = 0;
-
- private Choice mNewKeyAlgorithmChoice;
- private int mNewKeySize;
-
- volatile private PGPSecretKey mNewKey;
- private ProgressDialog mProgressDialog;
- private Thread mRunningThread = null;
-
- private Handler mHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- Bundle data = msg.getData();
- if (data != null) {
- boolean closeProgressDialog = data.getBoolean("closeProgressDialog");
- if (closeProgressDialog) {
- if (mProgressDialog != null) {
- mProgressDialog.dismiss();
- mProgressDialog = null;
- }
- }
-
- String error = data.getString(Apg.EXTRA_ERROR);
- if (error != null) {
- Toast.makeText(getContext(),
- getContext().getString(R.string.errorMessage, error),
- Toast.LENGTH_SHORT).show();
- }
-
- boolean gotNewKey = data.getBoolean("gotNewKey");
- if (gotNewKey) {
- KeyEditor view =
- (KeyEditor) mInflater.inflate(R.layout.edit_key_key_item,
- mEditors, false);
- view.setEditorListener(SectionView.this);
- boolean isMasterKey = (mEditors.getChildCount() == 0);
- view.setValue(mNewKey, isMasterKey);
- mEditors.addView(view);
- SectionView.this.updateEditorsVisible();
- }
- }
- }
- };
-
- public SectionView(Context context) {
- super(context);
- }
-
- public SectionView(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- public ViewGroup getEditors() {
- return mEditors;
- }
-
- public void setType(int type) {
- mType = type;
- switch (type) {
- case Id.type.user_id: {
- mTitle.setText(R.string.section_userIds);
- break;
- }
-
- case Id.type.key: {
- mTitle.setText(R.string.section_keys);
- break;
- }
-
- default: {
- break;
- }
- }
- }
-
- /** {@inheritDoc} */
- @Override
- protected void onFinishInflate() {
- mInflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-
- setDrawingCacheEnabled(true);
- setAlwaysDrawnWithCacheEnabled(true);
-
- mAdd = findViewById(R.id.header);
- mAdd.setOnClickListener(this);
-
- mEditors = (ViewGroup) findViewById(R.id.editors);
- mTitle = (TextView) findViewById(R.id.title);
-
- updateEditorsVisible();
- super.onFinishInflate();
- }
-
- /** {@inheritDoc} */
- public void onDeleted(Editor editor) {
- this.updateEditorsVisible();
- }
-
- protected void updateEditorsVisible() {
- final boolean hasChildren = mEditors.getChildCount() > 0;
- mEditors.setVisibility(hasChildren ? View.VISIBLE : View.GONE);
- }
-
- /** {@inheritDoc} */
- public void onClick(View v) {
- switch (mType) {
- case Id.type.user_id: {
- UserIdEditor view =
- (UserIdEditor) mInflater.inflate(R.layout.edit_key_user_id_item,
- mEditors, false);
- view.setEditorListener(this);
- if (mEditors.getChildCount() == 0) {
- view.setIsMainUserId(true);
- }
- mEditors.addView(view);
- break;
- }
-
- case Id.type.key: {
- AlertDialog.Builder dialog = new AlertDialog.Builder(getContext());
-
- View view = mInflater.inflate(R.layout.create_key, null);
- dialog.setView(view);
- dialog.setTitle(R.string.title_createKey);
- dialog.setMessage(R.string.keyCreationElGamalInfo);
-
- boolean wouldBeMasterKey = (mEditors.getChildCount() == 0);
-
- final Spinner algorithm = (Spinner) view.findViewById(R.id.algorithm);
- Vector<Choice> choices = new Vector<Choice>();
- choices.add(new Choice(Id.choice.algorithm.dsa,
- getResources().getString(R.string.dsa)));
- if (!wouldBeMasterKey) {
- choices.add(new Choice(Id.choice.algorithm.elgamal,
- getResources().getString(R.string.elgamal)));
- }
-
- choices.add(new Choice(Id.choice.algorithm.rsa,
- getResources().getString(R.string.rsa)));
-
- ArrayAdapter<Choice> adapter =
- new ArrayAdapter<Choice>(getContext(),
- android.R.layout.simple_spinner_item,
- choices);
- adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- algorithm.setAdapter(adapter);
- // make RSA the default
- for (int i = 0; i < choices.size(); ++i) {
- if (choices.get(i).getId() == Id.choice.algorithm.rsa) {
- algorithm.setSelection(i);
- break;
- }
- }
-
- final EditText keySize = (EditText) view.findViewById(R.id.size);
-
- dialog.setPositiveButton(android.R.string.ok,
- new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface di, int id) {
- di.dismiss();
- try {
- mNewKeySize = Integer.parseInt("" + keySize.getText());
- } catch (NumberFormatException e) {
- mNewKeySize = 0;
- }
-
- mNewKeyAlgorithmChoice = (Choice) algorithm.getSelectedItem();
- createKey();
- }
- });
-
- dialog.setCancelable(true);
- dialog.setNegativeButton(android.R.string.cancel,
- new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface di, int id) {
- di.dismiss();
- }
- });
-
- dialog.create().show();
- break;
- }
-
- default: {
- break;
- }
- }
- this.updateEditorsVisible();
- }
-
- public void setUserIds(Vector<String> list) {
- if (mType != Id.type.user_id) {
- return;
- }
-
- mEditors.removeAllViews();
- for (String userId : list) {
- UserIdEditor view =
- (UserIdEditor) mInflater.inflate(R.layout.edit_key_user_id_item, mEditors, false);
- view.setEditorListener(this);
- view.setValue(userId);
- if (mEditors.getChildCount() == 0) {
- view.setIsMainUserId(true);
- }
- mEditors.addView(view);
- }
-
- this.updateEditorsVisible();
- }
-
- public void setKeys(Vector<PGPSecretKey> list) {
- if (mType != Id.type.key) {
- return;
- }
-
- mEditors.removeAllViews();
- for (PGPSecretKey key : list) {
- KeyEditor view =
- (KeyEditor) mInflater.inflate(R.layout.edit_key_key_item, mEditors, false);
- view.setEditorListener(this);
- boolean isMasterKey = (mEditors.getChildCount() == 0);
- view.setValue(key, isMasterKey);
- mEditors.addView(view);
- }
-
- this.updateEditorsVisible();
- }
-
- private void createKey() {
- mProgressDialog = new ProgressDialog(getContext());
- mProgressDialog.setMessage(getContext().getString(R.string.progress_generating));
- mProgressDialog.setCancelable(false);
- mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
- mProgressDialog.show();
- mRunningThread = new Thread(this);
- mRunningThread.start();
- }
-
- public void run() {
- String error = null;
- try {
- PGPSecretKey masterKey = null;
- String passPhrase;
- if (mEditors.getChildCount() > 0) {
- masterKey = ((KeyEditor) mEditors.getChildAt(0)).getValue();
- passPhrase = Apg.getCachedPassPhrase(masterKey.getKeyID());
- } else {
- passPhrase = "";
- }
- mNewKey = Apg.createKey(getContext(),
- mNewKeyAlgorithmChoice.getId(),
- mNewKeySize, passPhrase,
- masterKey);
- } catch (NoSuchProviderException e) {
- error = "" + e;
- } catch (NoSuchAlgorithmException e) {
- error = "" + e;
- } catch (PGPException e) {
- error = "" + e;
- } catch (InvalidParameterException e) {
- error = "" + e;
- } catch (InvalidAlgorithmParameterException e) {
- error = "" + e;
- } catch (Apg.GeneralException e) {
- error = "" + e;
- }
-
- Message message = new Message();
- Bundle data = new Bundle();
- data.putBoolean("closeProgressDialog", true);
- if (error != null) {
- data.putString(Apg.EXTRA_ERROR, error);
- } else {
- data.putBoolean("gotNewKey", true);
- }
- message.setData(data);
- mHandler.sendMessage(message);
- }
-}