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

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

*- Agregados iconos para la operacion de agregar certificado.

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