/android/import-contacts

To get this branch, use:
bzr branch http://bzr.ed.am/android/import-contacts

« back to all changes in this revision

Viewing changes to src/org/waxworlds/edam/importcontacts/ConfigureVCF.java

  • Committer: edam
  • Date: 2010-12-12 00:16:42 UTC
  • Revision ID: edam@waxworlds.org-20101212001642-dqxbxww4ik9x7zbp
- update TODO

Show diffs side-by-side

added added

removed removed

1
 
package org.waxworlds.importcontacts;
2
 
 
 
1
/*
 
2
 * ConfigureVCF.java
 
3
 *
 
4
 * Copyright (C) 2009 Tim Marston <edam@waxworlds.org>
 
5
 *
 
6
 * This file is part of the Import Contacts program (hereafter referred
 
7
 * to as "this program"). For more information, see
 
8
 * http://www.waxworlds.org/edam/software/android/import-contacts
 
9
 *
 
10
 * This program is free software: you can redistribute it and/or modify
 
11
 * it under the terms of the GNU General Public License as published by
 
12
 * the Free Software Foundation, either version 3 of the License, or
 
13
 * (at your option) any later version.
 
14
 *
 
15
 * This program is distributed in the hope that it will be useful,
 
16
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
17
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
18
 * GNU General Public License for more details.
 
19
 *
 
20
 * You should have received a copy of the GNU General Public License
 
21
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
22
 */
 
23
 
 
24
package org.waxworlds.edam.importcontacts;
 
25
 
 
26
import android.app.AlertDialog;
 
27
import android.app.Dialog;
 
28
import android.content.DialogInterface;
3
29
import android.content.SharedPreferences;
4
30
import android.os.Bundle;
5
 
import android.widget.EditText;
 
31
import android.view.LayoutInflater;
 
32
import android.view.View;
 
33
import android.widget.Button;
 
34
import android.widget.TextView;
6
35
 
7
 
public class ImportVCF extends WizardActivity
 
36
public class ConfigureVCF extends WizardActivity
8
37
{
 
38
        public final static int DIALOG_FILEORDIR = 1;
 
39
        public final static int DIALOG_FILECHOOSER = 2;
 
40
 
 
41
        private FileChooser _file_chooser = null;
 
42
 
 
43
        // the save path
 
44
        private String _path;
 
45
 
 
46
        // was the dialog closed normally?
 
47
        private boolean _ok = false;
 
48
 
 
49
        // for the fileordir dialog, was file selected?
 
50
        boolean _ok_file;
 
51
 
 
52
        // reference to the dialog
 
53
        Dialog _dialog;
 
54
 
9
55
        @Override
10
56
        protected void onCreate( Bundle savedInstanceState )
11
57
        {
12
 
                setContentView( R.layout.import_vcf );
 
58
                setContentView( R.layout.configure_vcf );
13
59
                super.onCreate( savedInstanceState );
14
60
 
15
 
                setNextState( ImportContacts.STATE_MERGE );
 
61
                setNextActivity( Merge.class );
 
62
 
 
63
                // create file chooser
 
64
                _file_chooser = new FileChooser( this );
 
65
                String[] extensions = { "vcf" };
 
66
                _file_chooser.setExtensions( extensions );
 
67
                _file_chooser.setDismissListener(
 
68
                        new DialogInterface.OnDismissListener() {
 
69
                                public void onDismiss( DialogInterface dialog )
 
70
                                {
 
71
                                        if( _file_chooser.getOk() ) {
 
72
                                                _path = _file_chooser.getPath();
 
73
                                                updatePathButton();
 
74
                                        }
 
75
                                }
 
76
                        } );
 
77
                _file_chooser.setPathPrefix( "/sdcard" );
 
78
 
 
79
                // set up browser button
 
80
                Button button = (Button)findViewById( R.id.path );
 
81
                button.setOnClickListener( new View.OnClickListener() {
 
82
                        public void onClick( View view ) {
 
83
                                onBrowse();
 
84
                        }
 
85
                } );
 
86
        }
 
87
 
 
88
        private void onBrowse()
 
89
        {
 
90
                showDialog( DIALOG_FILEORDIR );
 
91
        }
 
92
 
 
93
        private void showBrowseDialog()
 
94
        {
 
95
                // set a path for this incantation
 
96
                _file_chooser.setMode(
 
97
                        _ok_file? FileChooser.MODE_FILE : FileChooser.MODE_DIR );
 
98
                _file_chooser.setPath( _path );
 
99
 
 
100
                // show dialog
 
101
                showDialog( DIALOG_FILECHOOSER );
 
102
        }
 
103
 
 
104
        protected void updatePathButton()
 
105
        {
 
106
                Button path_button = (Button)findViewById( R.id.path );
 
107
                path_button.setText(
 
108
                        _file_chooser.prettyPrint( "/sdcard" + _path, true ) );
 
109
 
 
110
                TextView location_text = (TextView)findViewById( R.id.location );
 
111
                location_text.setText( getString( _path.endsWith( "/" )?
 
112
                        R.string.vcf_location_dir : R.string.vcf_location_file ) );
16
113
        }
17
114
 
18
115
        @Override
21
118
 
22
119
                SharedPreferences.Editor editor = getSharedPreferences().edit();
23
120
 
24
 
                // location
25
 
                EditText location = (EditText)findViewById( R.id.location );
26
 
                editor.putString( "location", location.getText().toString() );
 
121
                editor.putString( "location", _path );
27
122
 
28
123
                editor.commit();
29
124
        }
35
130
                SharedPreferences prefs = getSharedPreferences();
36
131
 
37
132
                // location
38
 
                EditText location = (EditText)findViewById( R.id.location );
39
 
                location.setText( prefs.getString( "location", "/sdcard/contacts" ) );
 
133
                _path = prefs.getString( "location", "/" );
 
134
                updatePathButton();
 
135
        }
 
136
 
 
137
        @Override
 
138
        protected Dialog onCreateDialog( int id )
 
139
        {
 
140
                Dialog ret = null;
 
141
 
 
142
                switch( id )
 
143
                {
 
144
                case DIALOG_FILEORDIR:
 
145
                        // custom layout in an AlertDialog
 
146
                        LayoutInflater factory = LayoutInflater.from( this );
 
147
                        final View dialogView = factory.inflate(
 
148
                                R.layout.fileordir, null );
 
149
 
 
150
                        // wire up buttons
 
151
                        ( (Button)dialogView.findViewById(  R.id.file ) )
 
152
                                .setOnClickListener( new View.OnClickListener() {
 
153
                                        public void onClick( View view ) {
 
154
                                                _ok = true;
 
155
                                                _ok_file = true;
 
156
                                                _dialog.dismiss();
 
157
                                        }
 
158
                                } );
 
159
                        ( (Button)dialogView.findViewById(  R.id.dir ) )
 
160
                        .setOnClickListener( new View.OnClickListener() {
 
161
                                public void onClick( View view ) {
 
162
                                        _ok = true;
 
163
                                        _ok_file = false;
 
164
                                        _dialog.dismiss();
 
165
                                }
 
166
                        } );
 
167
 
 
168
                        _dialog = ret = new AlertDialog.Builder( this )
 
169
                                .setTitle( "Do you want to?" )
 
170
                                .setView( dialogView )
 
171
                                .create();
 
172
                        ret.setOnDismissListener(
 
173
                                new DialogInterface.OnDismissListener() {
 
174
                                        public void onDismiss( DialogInterface dialog )
 
175
                                        {
 
176
                                                if( _ok ) showBrowseDialog();
 
177
                                        }
 
178
                                } );
 
179
                        break;
 
180
 
 
181
                case DIALOG_FILECHOOSER:
 
182
                        ret = _file_chooser.onCreateDialog();
 
183
                        break;
 
184
                }
 
185
 
 
186
                return ret;
 
187
        }
 
188
 
 
189
        @Override
 
190
        protected void onPrepareDialog( int id, Dialog dialog )
 
191
        {
 
192
                switch( id )
 
193
                {
 
194
                case DIALOG_FILEORDIR:
 
195
                        _ok = false;
 
196
                        break;
 
197
 
 
198
                case DIALOG_FILECHOOSER:
 
199
                        _file_chooser.onPrepareDialog( this, dialog );
 
200
                        break;
 
201
                }
 
202
 
 
203
                super.onPrepareDialog( id, dialog );
40
204
        }
41
205
}