/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/importcontacts/ImportVCF.java

  • Committer: edam
  • Date: 2009-01-13 06:35:26 UTC
  • Revision ID: edam@waxworlds.org-20090113063526-l9t1s9git4bav60a
- new contact's phone numebrs and email addresses are added to the caches after those contacts are updated to account for the situation where the same contact is imported again from another file (or the contact exists twice in the same file!?)

Show diffs side-by-side

added added

removed removed

1
1
/*
2
 
 * ConfigureVCF.java
 
2
 * ImportVCF.java
3
3
 *
4
4
 * Copyright (C) 2009 Tim Marston <edam@waxworlds.org>
5
5
 *
21
21
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
22
22
 */
23
23
 
24
 
package org.waxworlds.edam.importcontacts;
 
24
package org.waxworlds.importcontacts;
25
25
 
26
 
import android.app.AlertDialog;
27
 
import android.app.Dialog;
28
 
import android.content.DialogInterface;
29
26
import android.content.SharedPreferences;
30
27
import android.os.Bundle;
31
 
import android.view.LayoutInflater;
32
 
import android.view.View;
33
 
import android.widget.Button;
34
 
import android.widget.TextView;
 
28
import android.widget.EditText;
35
29
 
36
 
public class ConfigureVCF extends WizardActivity
 
30
public class ImportVCF extends WizardActivity
37
31
{
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
 
 
55
32
        @Override
56
33
        protected void onCreate( Bundle savedInstanceState )
57
34
        {
58
 
                setContentView( R.layout.configure_vcf );
 
35
                setContentView( R.layout.import_vcf );
59
36
                super.onCreate( savedInstanceState );
60
37
 
61
 
                setNextActivity( Merge.class );
62
 
 
63
 
                // create file chooser
64
 
                _file_chooser = new FileChooser();
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 ) );
 
38
                setNextState( ImportContacts.STATE_MERGE );
113
39
        }
114
40
 
115
41
        @Override
118
44
 
119
45
                SharedPreferences.Editor editor = getSharedPreferences().edit();
120
46
 
121
 
                editor.putString( "location", _path );
 
47
                // location
 
48
                EditText location = (EditText)findViewById( R.id.location );
 
49
                editor.putString( "location", location.getText().toString() );
122
50
 
123
51
                editor.commit();
124
52
        }
130
58
                SharedPreferences prefs = getSharedPreferences();
131
59
 
132
60
                // location
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( this );
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 );
 
61
                EditText location = (EditText)findViewById( R.id.location );
 
62
                location.setText( prefs.getString( "location", "/sdcard/contacts" ) );
204
63
        }
205
64
}