From 9f7ec22841db783a4b548a99933b9edd7fcd1aba Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Mon, 26 Dec 2011 14:50:20 +1300 Subject: [PATCH] Make the AddServer process return to the ServerList activity when it completes. --- .../acal/activity/serverconfig/AddServerList.java | 17 ++++++++---- .../serverconfig/AddServerListAdapter.java | 22 ++++++--------- .../activity/serverconfig/CheckServerDialog.java | 1 + .../activity/serverconfig/ServerConfigList.java | 4 +-- .../activity/serverconfig/ServerConfiguration.java | 32 +++++++++++++--------- 5 files changed, 42 insertions(+), 34 deletions(-) diff --git a/src/com/morphoss/acal/activity/serverconfig/AddServerList.java b/src/com/morphoss/acal/activity/serverconfig/AddServerList.java index 255e744..74ef3fc 100644 --- a/src/com/morphoss/acal/activity/serverconfig/AddServerList.java +++ b/src/com/morphoss/acal/activity/serverconfig/AddServerList.java @@ -21,7 +21,9 @@ package com.morphoss.acal.activity.serverconfig; import android.app.ListActivity; import android.content.ContentValues; import android.content.Intent; +import android.net.Uri; import android.os.Bundle; +import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; @@ -32,7 +34,7 @@ public class AddServerList extends ListActivity implements OnClickListener { public static final String TAG = "acal AddServerList"; - private static final int CREATE_SERVER_REQUEST = 1; + public static final int KEY_CREATE_SERVER_REQUEST = 1; private Button manualConfiguration; public static final int ACTION_LOGIN = 1; public static final int ACTION_CREATE = 2; @@ -45,7 +47,6 @@ public class AddServerList extends ListActivity implements OnClickListener { manualConfiguration = (Button) findViewById(R.id.AddServerButton); manualConfiguration.setOnClickListener(this); -// manualConfiguration.setBackgroundDrawable(getResources().getDrawable(R.drawable.plus_icon)); manualConfiguration.setText(getString(R.string.NewManualServerConfiguration)); manualConfiguration.setTextSize(24); } @@ -63,20 +64,26 @@ public class AddServerList extends ListActivity implements OnClickListener { ContentValues newServer; newServer = new ContentValues(); - newServer.put(ServerConfiguration.MODEKEY, ServerConfiguration.MODE_CREATE); + newServer.put(ServerConfiguration.KEY_MODE, ServerConfiguration.MODE_CREATE); Intent serverConfigIntent = new Intent(); // Begin new activity serverConfigIntent.setClassName("com.morphoss.acal", "com.morphoss.acal.activity.serverconfig.ServerConfiguration"); serverConfigIntent.putExtra("ServerData", newServer); - startActivityForResult(serverConfigIntent, CREATE_SERVER_REQUEST); + startActivityForResult(serverConfigIntent, KEY_CREATE_SERVER_REQUEST); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { - if (requestCode == CREATE_SERVER_REQUEST ) { + if (requestCode == KEY_CREATE_SERVER_REQUEST ) { if (resultCode == RESULT_OK) finish(); } } + + public void signUp( String signUpUrl ) { + Intent viewIntent = new Intent("android.intent.action.VIEW", Uri.parse(signUpUrl)); + this.startActivity(viewIntent); + } + } diff --git a/src/com/morphoss/acal/activity/serverconfig/AddServerListAdapter.java b/src/com/morphoss/acal/activity/serverconfig/AddServerListAdapter.java index a46466d..af29181 100644 --- a/src/com/morphoss/acal/activity/serverconfig/AddServerListAdapter.java +++ b/src/com/morphoss/acal/activity/serverconfig/AddServerListAdapter.java @@ -31,7 +31,6 @@ import java.util.Map.Entry; import android.content.ContentValues; import android.content.Context; import android.content.Intent; -import android.net.Uri; import android.util.Log; import android.view.LayoutInflater; import android.view.View; @@ -48,11 +47,11 @@ import com.morphoss.acal.providers.Servers; public class AddServerListAdapter extends BaseAdapter { public static final String TAG = "Acal AddServerListAdapter"; - private Context context; + private AddServerList context; private ArrayList data; private int lastSavedConfig=0; - public AddServerListAdapter(Context c) { + public AddServerListAdapter(AddServerList c) { this.context = c; populateData(); } @@ -78,7 +77,7 @@ public class AddServerListAdapter extends BaseAdapter { for (ServerConfigData scd : l) { ContentValues cv = scd.getContentValues(); - cv.put(ServerConfiguration.MODEKEY, ServerConfiguration.MODE_IMPORT); + cv.put(ServerConfiguration.KEY_MODE, ServerConfiguration.MODE_IMPORT); data.add(cv); lastSavedConfig++;; } @@ -129,11 +128,11 @@ public class AddServerListAdapter extends BaseAdapter { "Found "+l.size()+" pre-written serverconfig entries for '"+confEntry.getKey()+"'"); for (ServerConfigData scd : l) { ContentValues cv = scd.getContentValues(); - cv.put(ServerConfiguration.MODEKEY, ServerConfiguration.MODE_IMPORT); + cv.put(ServerConfiguration.KEY_MODE, ServerConfiguration.MODE_IMPORT); if ( Constants.LOG_DEBUG ) Log.println(Constants.LOGD,TAG, "Added pre-written serverconfig for '"+confEntry.getKey()+"'"); if ( imageIds.getAsInteger(confEntry.getKey()) != null ) { - cv.put(ServerConfiguration.IMAGE_KEY, imageIds.getAsInteger(confEntry.getKey())); + cv.put(ServerConfiguration.KEY_IMAGE, imageIds.getAsInteger(confEntry.getKey())); if ( Constants.LOG_DEBUG ) Log.println(Constants.LOGD,TAG, "Setup image for '"+confEntry.getKey()+"'"); } @@ -197,10 +196,10 @@ public class AddServerListAdapter extends BaseAdapter { blurb.setText(blurbString); } else { - if ( item.getAsInteger(ServerConfiguration.IMAGE_KEY) != null ) { + if ( item.getAsInteger(ServerConfiguration.KEY_IMAGE) != null ) { Log.w(TAG, "Special lastSavedConfig image for '"+item.getAsString(Servers.FRIENDLY_NAME)+"'"); thisRow.setBackgroundColor(android.R.color.white); - thisRow.setBackgroundResource(item.getAsInteger(ServerConfiguration.IMAGE_KEY)); + thisRow.setBackgroundResource(item.getAsInteger(ServerConfiguration.KEY_IMAGE)); icon.setBackgroundColor(0); title.setText(item.getAsString("")); blurb.setText(item.getAsString("")); @@ -222,14 +221,9 @@ public class AddServerListAdapter extends BaseAdapter { serverConfigIntent.setClassName("com.morphoss.acal", "com.morphoss.acal.activity.serverconfig.ServerConfiguration"); serverConfigIntent.putExtra("ServerData", item); - context.startActivity(serverConfigIntent); + context.startActivityForResult(serverConfigIntent, AddServerList.KEY_CREATE_SERVER_REQUEST); } }); return rowLayout; } - - public void signUp( String signUpUrl ) { - Intent viewIntent = new Intent("android.intent.action.VIEW", Uri.parse("http://www.novoda.com")); - context.startActivity(viewIntent); - } } diff --git a/src/com/morphoss/acal/activity/serverconfig/CheckServerDialog.java b/src/com/morphoss/acal/activity/serverconfig/CheckServerDialog.java index b533381..d27989c 100755 --- a/src/com/morphoss/acal/activity/serverconfig/CheckServerDialog.java +++ b/src/com/morphoss/acal/activity/serverconfig/CheckServerDialog.java @@ -28,6 +28,7 @@ import android.app.ProgressDialog; import android.content.ContentValues; import android.content.Context; import android.content.DialogInterface; +import android.content.Intent; import android.database.sqlite.SQLiteConstraintException; import android.net.ConnectivityManager; import android.net.NetworkInfo; diff --git a/src/com/morphoss/acal/activity/serverconfig/ServerConfigList.java b/src/com/morphoss/acal/activity/serverconfig/ServerConfigList.java index 9d55782..1b8eeac 100755 --- a/src/com/morphoss/acal/activity/serverconfig/ServerConfigList.java +++ b/src/com/morphoss/acal/activity/serverconfig/ServerConfigList.java @@ -263,8 +263,8 @@ public class ServerConfigList extends ListActivity implements OnClickListener { // configuration activity knows what to do. ContentValues toPass = ServerConfigList.this.serverData.get(ServerConfigList.this.serverNames[position]); - if (!toPass.containsKey(ServerConfiguration.MODEKEY)) - toPass.put(ServerConfiguration.MODEKEY, ServerConfiguration.MODE_EDIT); + if (!toPass.containsKey(ServerConfiguration.KEY_MODE)) + toPass.put(ServerConfiguration.KEY_MODE, ServerConfiguration.MODE_EDIT); // We need to re-insert friendly name as it was removed when // creating this.serverNames diff --git a/src/com/morphoss/acal/activity/serverconfig/ServerConfiguration.java b/src/com/morphoss/acal/activity/serverconfig/ServerConfiguration.java index b2751cc..2a2e1f5 100755 --- a/src/com/morphoss/acal/activity/serverconfig/ServerConfiguration.java +++ b/src/com/morphoss/acal/activity/serverconfig/ServerConfiguration.java @@ -23,6 +23,7 @@ import java.util.HashMap; import android.content.ContentUris; import android.content.ContentValues; import android.content.Context; +import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.os.RemoteException; @@ -44,6 +45,7 @@ import android.widget.Toast; import com.morphoss.acal.Constants; import com.morphoss.acal.R; import com.morphoss.acal.ServiceManager; +import com.morphoss.acal.providers.DavCollections; import com.morphoss.acal.providers.Servers; import com.morphoss.acal.service.ServiceRequest; @@ -71,10 +73,10 @@ public class ServerConfiguration extends PreferenceActivity implements OnPrefere public int iface = INTERFACE_SIMPLE; //The Key to be used in serverData for storing the mode value. - public static final String MODEKEY = "MODE"; + public static final String KEY_MODE = "MODE"; //The Key to be used in serverData for storing the image resourceId - public static final String IMAGE_KEY = "IMAGE_RESOURCE"; + public static final String KEY_IMAGE = "IMAGE_RESOURCE"; //The Modes available for this activity. serverData MUST have one of these or the activity will abort @@ -133,19 +135,19 @@ public class ServerConfiguration extends PreferenceActivity implements OnPrefere serverData = this.getIntent().getExtras().getParcelable("ServerData"); } catch (Exception e) { serverData = new ContentValues(); - serverData.put(MODEKEY, MODE_CREATE); + serverData.put(KEY_MODE, MODE_CREATE); } - if ( serverData == null || !serverData.containsKey(MODEKEY) ) { + if ( serverData == null || !serverData.containsKey(KEY_MODE) ) { //server data not correctly set this.finish(); } - if ( serverData == null || serverData.getAsInteger(MODEKEY) == MODE_CREATE) { + if ( serverData == null || serverData.getAsInteger(KEY_MODE) == MODE_CREATE) { createDefaultValues(); } - else if (serverData.getAsInteger(MODEKEY) == MODE_IMPORT) { + else if (serverData.getAsInteger(KEY_MODE) == MODE_IMPORT) { createDefaultValuesForMissing(); } - else if (serverData.getAsInteger(MODEKEY) == MODE_EDIT){ + else if (serverData.getAsInteger(KEY_MODE) == MODE_EDIT){ //ensure all required fields are present if (! serverData.containsKey(Servers.FRIENDLY_NAME) && serverData.containsKey(Servers.SUPPLIED_USER_URL) && @@ -220,7 +222,7 @@ public class ServerConfiguration extends PreferenceActivity implements OnPrefere if (! serverData.containsKey(Servers.ACTIVE)) serverData.put(Servers.ACTIVE,1); if (! serverData.containsKey(Servers.USE_SSL)) serverData.put(Servers.USE_SSL,1); apply.setEnabled(true); - serverData.put(MODEKEY, MODE_CREATE); + serverData.put(KEY_MODE, MODE_CREATE); } private void createDefaultValues() { @@ -283,7 +285,7 @@ public class ServerConfiguration extends PreferenceActivity implements OnPrefere } public void saveData() { - switch (serverData.getAsInteger(MODEKEY)) { + switch (serverData.getAsInteger(KEY_MODE)) { case MODE_EDIT: updateRecord(); break; @@ -311,9 +313,13 @@ public class ServerConfiguration extends PreferenceActivity implements OnPrefere Log.e(TAG,Log.getStackTraceString(e)); } } - } - + + public void finishAndClose() { + this.setResult(RESULT_OK); + this.finish(); + } + /** *

Called when exiting/pausing activity in CREATE Mode. Creates a new record. Changes activity from * CREATE mode to EDIT mode if update was successful.

@@ -325,12 +331,12 @@ public class ServerConfiguration extends PreferenceActivity implements OnPrefere if (id < 0) throw new Exception("Failed to add server"); serverData.put(Servers._ID, id); //IMPORTANT if we don't change the mode its possible more than one record will be created. - serverData.put(MODEKEY, MODE_EDIT); + serverData.put(KEY_MODE, MODE_EDIT); //Find server capabilities } catch (Exception e) { //error updating - serverData.put(MODEKEY, MODE_CREATE); + serverData.put(KEY_MODE, MODE_CREATE); Toast.makeText(this, getString(R.string.errorSavingServerConfig), Toast.LENGTH_LONG); } } -- 2.11.4.GIT