source: dispositivos_moviles/TibisayMovil/src/ve/gob/cenditel/tibisaymovil/TibisayMovilActivity.java @ fd4a5b9

Last change on this file since fd4a5b9 was fd4a5b9, checked in by Antonio Araujo Brett <aaraujo@…>, 11 years ago

*- Implementada funcionalidad de descifrar un archivo. Agregadas actividades para realizar operación de descifrado y mostrar resultados del archivo descifrado.

  • Property mode set to 100644
File size: 9.8 KB
Line 
1package ve.gob.cenditel.tibisaymovil;
2
3import ve.gob.cenditel.tibisaymovil.R.color;
4import android.os.Build;
5import android.os.Bundle;
6import android.app.Activity;
7import android.app.AlertDialog;
8import android.content.Context;
9import android.content.DialogInterface;
10import android.content.Intent;
11import android.util.Log;
12import android.view.Menu;
13import android.view.View;
14import android.view.Window;
15import android.widget.AdapterView;
16import android.widget.AdapterView.OnItemClickListener;
17import android.widget.ArrayAdapter;
18import android.widget.ListView;
19import android.widget.TextView;
20import android.widget.Toast;
21
22//public class TibisayMovilActivity extends KeyChainClientActivity {
23//implements OnItemClickListener, OnClickListener {
24public class TibisayMovilActivity extends Activity {
25
26        @Override
27        protected void onCreate(Bundle savedInstanceState) {
28                super.onCreate(savedInstanceState);
29       
30                final boolean customTitleSupported = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);         
31                setContentView(R.layout.activity_main);   
32                if(customTitleSupported)
33                        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_bar);
34       
35                // listview de funciones
36                final ListView listViewFunctions = (ListView) findViewById(R.id.listViewFunctions);
37               
38                String[] values = new String[] {getString(R.string.firmar), 
39                                                                                getString(R.string.verificar), 
40                                                                                getString(R.string.cifrar), 
41                                                                                getString(R.string.descifrar), 
42                                                                                getString(R.string.compartir), 
43                                                                                getString(R.string.certificados) };
44                       
45                       
46                FunctionListAdapter ad = new FunctionListAdapter(this, values);
47                listViewFunctions.setAdapter(ad);
48               
49               
50                /*************** Dialogos de submenus *******************/
51                //Crear dialogo de opciones para firmar
52                final AlertDialog sign_dialog = makeSignatureOptionsDialog();
53               
54                //Crear dialogo de opciones para compartir archivo
55                final AlertDialog share_dialog = makeShareOptionsDialog();
56                       
57                //Crear dialogo de opciones para compartir cifrar archivo
58                final AlertDialog certificate_dialog = makeCertificateOptionsDialog();
59
60               
61                listViewFunctions.setOnItemClickListener(new OnItemClickListener(){
62                       
63                        @Override
64                        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
65                                        long arg3) {
66                                // TODO Auto-generated method stub
67                                Context context = getApplicationContext();
68                                //CharSequence text = "Click!";
69                                int duration = Toast.LENGTH_SHORT;
70                                //Toast.makeText(context, text, duration).show();
71                               
72                                View curr = arg0.getChildAt((int) arg3);
73                                TextView c = (TextView)curr.findViewById(R.id.textListMainMenu);
74                                String function = c.getText().toString();
75                                //Toast.makeText(context, function, duration).show();
76
77                                // seleccion de firmar
78                                if(function.equals(getString(R.string.firmar))) {
79                                        sign_dialog.show();
80                                }
81                               
82                                // seleccion de verificar
83                                if(function.equals(getString(R.string.verificar))) {
84                                        Toast.makeText(context, "VERIFICAR", duration).show();
85                                        verifyBDOCSignedFile();
86                                }
87                               
88                                // seleccion de cifrar
89                                if(function.equals(getString(R.string.cifrar))) {
90                                        Toast.makeText(context, "CIFRAR", duration).show();
91                                        encryptFile();
92                                }
93                               
94                                // seleccion de descifrar
95                                if(function.equals(getString(R.string.descifrar))) {
96                                        Toast.makeText(context, "DESCIFRAR", duration).show();
97                                        decryptFile();
98                                }
99                               
100                                // seleccion de gestionar certificados
101                                if (function.equals("Certificados")){
102                                        Toast.makeText(context, "Gestionar repositorio", duration).show();
103                                       
104                                        certificate_dialog.show();
105                                        /*
106                                       
107                                        // Chequeo de version del API de Android para creacion de repositorio           
108                                if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH){
109                                        //RelativeLayout certTab = (RelativeLayout) this.findViewById(R.id.linetab2);
110                                    //certTab.setVisibility(View.VISIBLE);           
111                                    //this.tabsListener.setKeyChainController(this.keyChainController);
112                                        Toast.makeText(context, "API < 4.0", duration).show();
113                                }
114                                       
115                                        //manageKeyChain();
116                                       
117                                        // lanzar activity de gestion de repositorio
118                                        testRepository();
119                                       
120                                        */
121                                }
122                               
123                                // seleccion de compartir archivo
124                                if (function.equals(getString(R.string.compartir))){
125                                        Toast.makeText(context, "Compartir Archivo", duration).show();
126                                        share_dialog.show();
127                               
128                                }
129                               
130                        }
131                }); //setOnItemClickListener
132        } // end onCreate
133
134        @Override
135        public boolean onCreateOptionsMenu(Menu menu) {
136                // Inflate the menu; this adds items to the action bar if it is present.
137                getMenuInflater().inflate(R.menu.main, menu);
138                return true;
139        }
140
141        /*
142        @Override
143    public void setAlias(String alias) {
144
145        if (alias == null) {
146            finish();
147            return;
148        }
149       
150        this.privateKeyAlias = alias;
151       
152        //Intent intent = new Intent(this, CertValidatorActivity.class);
153        //intent.putExtra(IntentExtraField.ALIAS, alias);
154        //intent.putParcelableArrayListExtra(IntentExtraField.FILES, TypeUtils.convertToUriArrayList(this.selected));
155        //startActivityForResult(intent, ActivityResult.CHECK_CERTIFICATE_VALIDITY);       
156       
157    }
158        */
159
160//      private void manageKeyChain(){
161//              //
162//              //Intent intent = new Intent(this, PKCS12FilePickerActivity.class);
163//        //startActivityForResult(intent, ActivityResult.IMPORT_CERTIFICATE);
164//        //KeyChainStrategy.getInstance().choosePrivateKeyAlias();
165//      }
166       
167        private void testRepository(){
168                Intent intent = new Intent(this, CertificateRepositoryActivity.class);
169                startActivity(intent);
170        }
171       
172        private void fileToSignHandwrittenSignature(){
173                Intent intent = new Intent(this, FileToSignHandwrittenSignatureActivity.class);
174                startActivity(intent);
175        }
176
177       
178        // lanza activity para verificar un documento firmado
179        private void verifyBDOCSignedFile(){
180                //Intent intent = new Intent(this, FileToSignHandwrittenSignatureActivity.class);
181                Intent intent = new Intent(this, FileToVerifySignatureActivity.class);
182                startActivity(intent);
183        }
184       
185        // lanza activity para compartir un documento
186        private void shareFile(String path){
187                Intent intent = new Intent(this, FileToShareActivity.class);
188               
189                intent.putExtra("path", path);
190               
191                startActivity(intent);
192        }
193
194        // lanza activity para cifrar un documento
195        private void encryptFile(){
196                Intent intent = new Intent(this, FileToEncryptActivity.class);         
197                startActivity(intent);
198        }
199
200       
201        // lanza activity para descifrar un documento
202        private void decryptFile(){
203                Intent intent = new Intent(this, FileToDecryptActivity.class);         
204                startActivity(intent);
205        }
206
207       
208        // lanza la activity para gestionar los certificados de destinarios (cifrado)
209        private void manageRecipientCertificates() {
210                Intent intent = new Intent(this, EncryptionCertificatesActivity.class);         
211                startActivity(intent);
212        }
213       
214       
215        //Crea dialogo de opciones para firma electronica
216        public AlertDialog makeSignatureOptionsDialog() {
217                final String[] option = new String[] {getString(R.string.firmar_man_pdf), getString(R.string.firmar_elec_pdf), getString(R.string.firmar_pkcs7) };
218                ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
219                        android.R.layout.select_dialog_item, option);
220                AlertDialog.Builder builder = new AlertDialog.Builder(this);
221               
222                builder.setTitle(getString(R.string.seleccione_opcion));
223                builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
224               
225                  public void onClick(DialogInterface dialog, int which) {
226                         
227                          switch (which) {
228                        case 0: // Firma Manuscrita PDF
229                                Log.i("DEBUG", "antes de activity call");
230                                fileToSignHandwrittenSignature();
231                                break;
232                        case 1: // Firma Electronica PDF
233                               
234                                break;
235                        case 2: // Firma PKCS7
236                               
237                                break;
238
239                        default:
240                                break;
241                        }
242                  }
243                 
244                });     
245               
246                return builder.create();
247        }
248       
249        //Crea dialogo de opciones para compartir archivos
250        public AlertDialog makeShareOptionsDialog() {
251                final String[] option = new String[] {getString(R.string.share_pdf_signed), 
252                                getString(R.string.share_bdoc_downloaded), getString(R.string.share_extracted_file_from_bdoc), 
253                                getString(R.string.share_encrypted) };
254                ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
255                        android.R.layout.select_dialog_item, option);
256                AlertDialog.Builder builder = new AlertDialog.Builder(this);
257               
258                builder.setTitle(getString(R.string.seleccione_opcion));
259                builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
260               
261                  public void onClick(DialogInterface dialog, int which) {
262                         
263                          switch (which) {
264                        case 0: // Archivo Firmado
265                                Log.i("DEBUG", "antes de activity call");
266                                shareFile("archivoFirmado");
267                                break;
268                        case 1: // Archivos BDOC Descargados
269                                shareFile("bdocDescargado");
270                                break;
271                        case 2: // Archivos extraídos de BDOC
272                                shareFile("extraidoDeBdoc");
273                                break;
274
275                        case 3: // Archivos cifrados
276                                shareFile("cifrado");
277                                break;
278                        default:
279                                break;
280                        }
281                  }
282                 
283                });     
284               
285                return builder.create();
286        }
287       
288        //Crea dialogo de opciones para gestionar certificados
289        public AlertDialog makeCertificateOptionsDialog() {
290                final String[] option = new String[] {getString(R.string.manage_personal_certificates), getString(R.string.manage_certificates_for_encryption) };
291                ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
292                        android.R.layout.select_dialog_item, option);
293                AlertDialog.Builder builder = new AlertDialog.Builder(this);
294               
295                builder.setTitle(getString(R.string.seleccione_opcion));
296                builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
297               
298                  public void onClick(DialogInterface dialog, int which) {
299                         
300                          switch (which) {
301                        case 0: // Certificados personales
302                                Log.i("DEBUG", "antes de activity call");
303                               
304                                break;
305                        case 1: // Certificados para cifrado
306                                Toast.makeText(getApplicationContext(), "Lanzar certificados de destinatarios", Toast.LENGTH_SHORT).show();
307                                manageRecipientCertificates();
308                                break;
309                               
310                        default:
311                                break;
312                        }
313                  }
314                 
315                });     
316               
317                return builder.create();
318        }
319       
320}
Note: See TracBrowser for help on using the repository browser.