From 38a4f3f53c1220f542cf85c5bad108460865ae4f Mon Sep 17 00:00:00 2001 From: Ricki Hirner Date: Wed, 11 Mar 2015 14:34:13 +0100 Subject: [PATCH] Minor UI changes * always notify user on SSL/TLS exceptions (closes #447) * re-organize UI classes to separate ui package * re-organize layout and menu resources * make MANAGE_NETWORK_USAGE intent filter work --- app/src/main/AndroidManifest.xml | 5 ++-- .../AccountAuthenticatorService.java | 2 ++ .../davdroid/syncadapter/DavSyncAdapter.java | 25 +++++++++++++------ .../davdroid/{ => ui}/MainActivity.java | 8 +++--- .../davdroid/ui/settings/AccountActivity.java | 2 +- .../setup}/AccountDetailsFragment.java | 7 +++--- .../setup}/AddAccountActivity.java | 8 +++--- .../setup}/LoginEmailFragment.java | 4 +-- .../setup}/LoginTypeFragment.java | 4 +-- .../setup}/LoginURLFragment.java | 4 +-- .../setup}/QueryServerDialogFragment.java | 4 +-- .../setup}/SelectCollectionsAdapter.java | 7 +++--- .../setup}/SelectCollectionsFragment.java | 4 +-- .../setup}/WebDavResourceAdapter.java | 2 +- .../{activity_main.xml => main_activity.xml} | 0 ..._details.xml => setup_account_details.xml} | 0 ...{add_account.xml => setup_add_account.xml} | 0 ...ng.xml => setup_address_books_heading.xml} | 0 ...eading.xml => setup_calendars_heading.xml} | 0 ...{login_email.xml => setup_login_email.xml} | 0 .../{login_type.xml => setup_login_type.xml} | 0 .../{login_url.xml => setup_login_url.xml} | 0 ...uery_server.xml => setup_query_server.xml} | 0 ...ml => setup_select_collections_header.xml} | 0 ..._details.xml => setup_account_details.xml} | 0 ...{add_account.xml => setup_add_account.xml} | 0 26 files changed, 51 insertions(+), 35 deletions(-) rename app/src/main/java/at/bitfire/davdroid/{ => ui}/MainActivity.java (92%) rename app/src/main/java/at/bitfire/davdroid/{syncadapter => ui/setup}/AccountDetailsFragment.java (95%) rename app/src/main/java/at/bitfire/davdroid/{syncadapter => ui/setup}/AddAccountActivity.java (85%) rename app/src/main/java/at/bitfire/davdroid/{syncadapter => ui/setup}/LoginEmailFragment.java (96%) rename app/src/main/java/at/bitfire/davdroid/{syncadapter => ui/setup}/LoginTypeFragment.java (93%) rename app/src/main/java/at/bitfire/davdroid/{syncadapter => ui/setup}/LoginURLFragment.java (97%) rename app/src/main/java/at/bitfire/davdroid/{syncadapter => ui/setup}/QueryServerDialogFragment.java (97%) rename app/src/main/java/at/bitfire/davdroid/{syncadapter => ui/setup}/SelectCollectionsAdapter.java (95%) rename app/src/main/java/at/bitfire/davdroid/{syncadapter => ui/setup}/SelectCollectionsFragment.java (97%) rename app/src/main/java/at/bitfire/davdroid/{syncadapter => ui/setup}/WebDavResourceAdapter.java (97%) rename app/src/main/res/layout/{activity_main.xml => main_activity.xml} (100%) rename app/src/main/res/layout/{account_details.xml => setup_account_details.xml} (100%) rename app/src/main/res/layout/{add_account.xml => setup_add_account.xml} (100%) rename app/src/main/res/layout/{address_books_heading.xml => setup_address_books_heading.xml} (100%) rename app/src/main/res/layout/{calendars_heading.xml => setup_calendars_heading.xml} (100%) rename app/src/main/res/layout/{login_email.xml => setup_login_email.xml} (100%) rename app/src/main/res/layout/{login_type.xml => setup_login_type.xml} (100%) rename app/src/main/res/layout/{login_url.xml => setup_login_url.xml} (100%) rename app/src/main/res/layout/{query_server.xml => setup_query_server.xml} (100%) rename app/src/main/res/layout/{select_collections_header.xml => setup_select_collections_header.xml} (100%) rename app/src/main/res/menu/{account_details.xml => setup_account_details.xml} (100%) rename app/src/main/res/menu/{add_account.xml => setup_add_account.xml} (100%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2099a5b9..9d2e9a17 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -71,7 +71,7 @@ @@ -79,7 +79,7 @@ + remote collection pairs Map, RemoteCollection> syncCollections = getSyncPairs(account, provider); @@ -142,34 +144,41 @@ public abstract class DavSyncAdapter extends AbstractThreadedSyncAdapter impleme try { for (Map.Entry, RemoteCollection> entry : syncCollections.entrySet()) new SyncManager(entry.getKey(), entry.getValue()).synchronize(extras.containsKey(ContentResolver.SYNC_EXTRAS_MANUAL), syncResult); + } catch (DavException ex) { - exceptionToShow = ex; syncResult.stats.numParseExceptions++; Log.e(TAG, "Invalid DAV response", ex); + exceptionToShow = ex; + } catch (HttpException ex) { if (ex.getCode() == HttpStatus.SC_UNAUTHORIZED) { - exceptionToShow = ex; Log.e(TAG, "HTTP Unauthorized " + ex.getCode(), ex); syncResult.stats.numAuthExceptions++; // hard error - } else if (ex.isClientError()) { + exceptionToShow = ex; + exceptionIntent = new Intent(context, AccountActivity.class); + exceptionIntent.putExtra(AccountActivity.EXTRA_ACCOUNT, account); + } else if (ex.isClientError()) { Log.e(TAG, "Hard HTTP error " + ex.getCode(), ex); syncResult.stats.numParseExceptions++; // hard error + exceptionToShow = ex; } else { Log.w(TAG, "Soft HTTP error " + ex.getCode() + " (Android will try again later)", ex); syncResult.stats.numIoExceptions++; // soft error } } catch (LocalStorageException ex) { - exceptionToShow = ex; syncResult.databaseError = true; // hard error Log.e(TAG, "Local storage (content provider) exception", ex); + exceptionToShow = ex; } catch (IOException ex) { syncResult.stats.numIoExceptions++; // soft error Log.e(TAG, "I/O error (Android will try again later)", ex); + if (ex instanceof SSLException) // always notify on SSL/TLS errors + exceptionToShow = ex; } catch (URISyntaxException ex) { - exceptionToShow = ex; syncResult.stats.numParseExceptions++; // hard error Log.e(TAG, "Invalid URI (file name) syntax", ex); + exceptionToShow = ex; } } finally { // allow httpClient shutdown @@ -178,8 +187,10 @@ public abstract class DavSyncAdapter extends AbstractThreadedSyncAdapter impleme // show sync errors as notification if (exceptionToShow != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { - Intent intentHelp = new Intent(Intent.ACTION_VIEW, Uri.parse(Constants.WEB_URL_VIEW_LOGS)); - PendingIntent contentIntent = PendingIntent.getActivity(context, 0, intentHelp, 0); + if (exceptionIntent == null) + exceptionIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(Constants.WEB_URL_VIEW_LOGS)); + + PendingIntent contentIntent = PendingIntent.getActivity(context, 0, exceptionIntent, 0); Notification.Builder builder = new Notification.Builder(context) .setSmallIcon(R.drawable.ic_launcher) .setPriority(Notification.PRIORITY_LOW) diff --git a/app/src/main/java/at/bitfire/davdroid/MainActivity.java b/app/src/main/java/at/bitfire/davdroid/ui/MainActivity.java similarity index 92% rename from app/src/main/java/at/bitfire/davdroid/MainActivity.java rename to app/src/main/java/at/bitfire/davdroid/ui/MainActivity.java index d64221f4..ae08b4d4 100644 --- a/app/src/main/java/at/bitfire/davdroid/MainActivity.java +++ b/app/src/main/java/at/bitfire/davdroid/ui/MainActivity.java @@ -5,7 +5,7 @@ * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/gpl.html */ -package at.bitfire.davdroid; +package at.bitfire.davdroid.ui; import android.app.Activity; import android.content.Intent; @@ -20,7 +20,9 @@ import android.view.MenuItem; import android.view.View; import android.widget.TextView; -import at.bitfire.davdroid.syncadapter.AddAccountActivity; +import at.bitfire.davdroid.Constants; +import at.bitfire.davdroid.R; +import at.bitfire.davdroid.ui.setup.AddAccountActivity; import at.bitfire.davdroid.ui.settings.SettingsActivity; public class MainActivity extends Activity { @@ -29,7 +31,7 @@ public class MainActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); + setContentView(R.layout.main_activity); TextView tvWorkaround = (TextView)findViewById(R.id.text_workaround); if (fromPlayStore()) { diff --git a/app/src/main/java/at/bitfire/davdroid/ui/settings/AccountActivity.java b/app/src/main/java/at/bitfire/davdroid/ui/settings/AccountActivity.java index d31f2022..561c0c7c 100644 --- a/app/src/main/java/at/bitfire/davdroid/ui/settings/AccountActivity.java +++ b/app/src/main/java/at/bitfire/davdroid/ui/settings/AccountActivity.java @@ -17,7 +17,7 @@ import android.util.Log; import at.bitfire.davdroid.R; public class AccountActivity extends Activity { - static final String EXTRA_ACCOUNT = "account"; + public static final String EXTRA_ACCOUNT = "account"; @Override protected void onCreate(Bundle savedInstanceState) { diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/AccountDetailsFragment.java b/app/src/main/java/at/bitfire/davdroid/ui/setup/AccountDetailsFragment.java similarity index 95% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/AccountDetailsFragment.java rename to app/src/main/java/at/bitfire/davdroid/ui/setup/AccountDetailsFragment.java index 61390115..e03cdad7 100644 --- a/app/src/main/java/at/bitfire/davdroid/syncadapter/AccountDetailsFragment.java +++ b/app/src/main/java/at/bitfire/davdroid/ui/setup/AccountDetailsFragment.java @@ -5,7 +5,7 @@ * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/gpl.html */ -package at.bitfire.davdroid.syncadapter; +package at.bitfire.davdroid.ui.setup; import android.accounts.Account; import android.accounts.AccountManager; @@ -31,6 +31,7 @@ import at.bitfire.davdroid.R; import at.bitfire.davdroid.resource.LocalCalendar; import at.bitfire.davdroid.resource.LocalStorageException; import at.bitfire.davdroid.resource.ServerInfo; +import at.bitfire.davdroid.syncadapter.AccountSettings; public class AccountDetailsFragment extends Fragment implements TextWatcher { public static final String KEY_SERVER_INFO = "server_info"; @@ -42,7 +43,7 @@ public class AccountDetailsFragment extends Fragment implements TextWatcher { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View v = inflater.inflate(R.layout.account_details, container, false); + View v = inflater.inflate(R.layout.setup_account_details, container, false); serverInfo = (ServerInfo)getArguments().getSerializable(KEY_SERVER_INFO); @@ -61,7 +62,7 @@ public class AccountDetailsFragment extends Fragment implements TextWatcher { @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - inflater.inflate(R.menu.account_details, menu); + inflater.inflate(R.menu.setup_account_details, menu); } @Override diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/AddAccountActivity.java b/app/src/main/java/at/bitfire/davdroid/ui/setup/AddAccountActivity.java similarity index 85% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/AddAccountActivity.java rename to app/src/main/java/at/bitfire/davdroid/ui/setup/AddAccountActivity.java index 37719e3c..e205554c 100644 --- a/app/src/main/java/at/bitfire/davdroid/syncadapter/AddAccountActivity.java +++ b/app/src/main/java/at/bitfire/davdroid/ui/setup/AddAccountActivity.java @@ -5,7 +5,7 @@ * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/gpl.html */ -package at.bitfire.davdroid.syncadapter; +package at.bitfire.davdroid.ui.setup; import android.app.Activity; import android.content.Intent; @@ -24,11 +24,11 @@ public class AddAccountActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.add_account); + setContentView(R.layout.setup_add_account); if (savedInstanceState == null) { // first call getFragmentManager().beginTransaction() - .add(R.id.right_pane, new LoginTypeFragment(), "login_type") + .add(R.id.right_pane, new LoginTypeFragment()) .commit(); } } @@ -36,7 +36,7 @@ public class AddAccountActivity extends Activity { @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); - inflater.inflate(R.menu.add_account, menu); + inflater.inflate(R.menu.setup_add_account, menu); return true; } diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/LoginEmailFragment.java b/app/src/main/java/at/bitfire/davdroid/ui/setup/LoginEmailFragment.java similarity index 96% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/LoginEmailFragment.java rename to app/src/main/java/at/bitfire/davdroid/ui/setup/LoginEmailFragment.java index 8cde2a01..37f73690 100644 --- a/app/src/main/java/at/bitfire/davdroid/syncadapter/LoginEmailFragment.java +++ b/app/src/main/java/at/bitfire/davdroid/ui/setup/LoginEmailFragment.java @@ -5,7 +5,7 @@ * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/gpl.html */ -package at.bitfire.davdroid.syncadapter; +package at.bitfire.davdroid.ui.setup; import android.app.DialogFragment; import android.app.Fragment; @@ -33,7 +33,7 @@ public class LoginEmailFragment extends Fragment implements TextWatcher { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View v = inflater.inflate(R.layout.login_email, container, false); + View v = inflater.inflate(R.layout.setup_login_email, container, false); editEmail = (EditText)v.findViewById(R.id.email_address); editEmail.addTextChangedListener(this); diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/LoginTypeFragment.java b/app/src/main/java/at/bitfire/davdroid/ui/setup/LoginTypeFragment.java similarity index 93% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/LoginTypeFragment.java rename to app/src/main/java/at/bitfire/davdroid/ui/setup/LoginTypeFragment.java index e2037909..0844241f 100644 --- a/app/src/main/java/at/bitfire/davdroid/syncadapter/LoginTypeFragment.java +++ b/app/src/main/java/at/bitfire/davdroid/ui/setup/LoginTypeFragment.java @@ -5,7 +5,7 @@ * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/gpl.html */ -package at.bitfire.davdroid.syncadapter; +package at.bitfire.davdroid.ui.setup; import android.app.Fragment; import android.os.Bundle; @@ -26,7 +26,7 @@ public class LoginTypeFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View v = inflater.inflate(R.layout.login_type, container, false); + View v = inflater.inflate(R.layout.setup_login_type, container, false); btnTypeEmail = (RadioButton)v.findViewById(R.id.login_type_email); btnTypeURL = (RadioButton)v.findViewById(R.id.login_type_url); diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/LoginURLFragment.java b/app/src/main/java/at/bitfire/davdroid/ui/setup/LoginURLFragment.java similarity index 97% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/LoginURLFragment.java rename to app/src/main/java/at/bitfire/davdroid/ui/setup/LoginURLFragment.java index 1704e7e6..ae1db7c8 100644 --- a/app/src/main/java/at/bitfire/davdroid/syncadapter/LoginURLFragment.java +++ b/app/src/main/java/at/bitfire/davdroid/ui/setup/LoginURLFragment.java @@ -5,7 +5,7 @@ * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/gpl.html */ -package at.bitfire.davdroid.syncadapter; +package at.bitfire.davdroid.ui.setup; import android.app.DialogFragment; import android.app.Fragment; @@ -45,7 +45,7 @@ public class LoginURLFragment extends Fragment implements TextWatcher { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View v = inflater.inflate(R.layout.login_url, container, false); + View v = inflater.inflate(R.layout.setup_login_url, container, false); // protocol selection spinner textHttpWarning = (TextView)v.findViewById(R.id.http_warning); diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/QueryServerDialogFragment.java b/app/src/main/java/at/bitfire/davdroid/ui/setup/QueryServerDialogFragment.java similarity index 97% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/QueryServerDialogFragment.java rename to app/src/main/java/at/bitfire/davdroid/ui/setup/QueryServerDialogFragment.java index c4b86462..ed34b07b 100644 --- a/app/src/main/java/at/bitfire/davdroid/syncadapter/QueryServerDialogFragment.java +++ b/app/src/main/java/at/bitfire/davdroid/ui/setup/QueryServerDialogFragment.java @@ -5,7 +5,7 @@ * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/gpl.html */ -package at.bitfire.davdroid.syncadapter; +package at.bitfire.davdroid.ui.setup; import android.app.DialogFragment; import android.app.LoaderManager.LoaderCallbacks; @@ -57,7 +57,7 @@ public class QueryServerDialogFragment extends DialogFragment implements LoaderC @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - return inflater.inflate(R.layout.query_server, container, false); + return inflater.inflate(R.layout.setup_query_server, container, false); } @Override diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/SelectCollectionsAdapter.java b/app/src/main/java/at/bitfire/davdroid/ui/setup/SelectCollectionsAdapter.java similarity index 95% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/SelectCollectionsAdapter.java rename to app/src/main/java/at/bitfire/davdroid/ui/setup/SelectCollectionsAdapter.java index 206938f2..eb0d0fce 100644 --- a/app/src/main/java/at/bitfire/davdroid/syncadapter/SelectCollectionsAdapter.java +++ b/app/src/main/java/at/bitfire/davdroid/ui/setup/SelectCollectionsAdapter.java @@ -5,7 +5,7 @@ * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/gpl.html */ -package at.bitfire.davdroid.syncadapter; +package at.bitfire.davdroid.ui.setup; import android.annotation.SuppressLint; import android.content.Context; @@ -19,7 +19,6 @@ import android.widget.ListAdapter; import at.bitfire.davdroid.R; import at.bitfire.davdroid.resource.ServerInfo; -import at.bitfire.davdroid.resource.ServerInfo.ResourceInfo.Type; import lombok.Getter; public class SelectCollectionsAdapter extends BaseAdapter implements ListAdapter { @@ -104,14 +103,14 @@ public class SelectCollectionsAdapter extends BaseAdapter implements ListAdapter LayoutInflater inflater = LayoutInflater.from(parent.getContext()); switch (getItemViewType(position)) { case TYPE_ADDRESS_BOOKS_HEADING: - v = inflater.inflate(R.layout.address_books_heading, parent, false); + v = inflater.inflate(R.layout.setup_address_books_heading, parent, false); break; case TYPE_ADDRESS_BOOKS_ROW: v = inflater.inflate(android.R.layout.simple_list_item_single_choice, null); v.setPadding(0, 8, 0, 8); break; case TYPE_CALENDARS_HEADING: - v = inflater.inflate(R.layout.calendars_heading, parent, false); + v = inflater.inflate(R.layout.setup_calendars_heading, parent, false); break; case TYPE_CALENDARS_ROW: v = inflater.inflate(android.R.layout.simple_list_item_multiple_choice, null); diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/SelectCollectionsFragment.java b/app/src/main/java/at/bitfire/davdroid/ui/setup/SelectCollectionsFragment.java similarity index 97% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/SelectCollectionsFragment.java rename to app/src/main/java/at/bitfire/davdroid/ui/setup/SelectCollectionsFragment.java index 887ccd27..eaddb345 100644 --- a/app/src/main/java/at/bitfire/davdroid/syncadapter/SelectCollectionsFragment.java +++ b/app/src/main/java/at/bitfire/davdroid/ui/setup/SelectCollectionsFragment.java @@ -5,7 +5,7 @@ * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/gpl.html */ -package at.bitfire.davdroid.syncadapter; +package at.bitfire.davdroid.ui.setup; import android.app.ListFragment; import android.os.Bundle; @@ -47,7 +47,7 @@ public class SelectCollectionsFragment extends ListFragment { final ListView listView = getListView(); listView.setPadding(20, 30, 20, 30); - View header = getActivity().getLayoutInflater().inflate(R.layout.select_collections_header, getListView(), false); + View header = getActivity().getLayoutInflater().inflate(R.layout.setup_select_collections_header, getListView(), false); listView.addHeaderView(header, getListView(), false); final ServerInfo serverInfo = (ServerInfo)getArguments().getSerializable(KEY_SERVER_INFO); diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/WebDavResourceAdapter.java b/app/src/main/java/at/bitfire/davdroid/ui/setup/WebDavResourceAdapter.java similarity index 97% rename from app/src/main/java/at/bitfire/davdroid/syncadapter/WebDavResourceAdapter.java rename to app/src/main/java/at/bitfire/davdroid/ui/setup/WebDavResourceAdapter.java index 26892a07..73231e09 100644 --- a/app/src/main/java/at/bitfire/davdroid/syncadapter/WebDavResourceAdapter.java +++ b/app/src/main/java/at/bitfire/davdroid/ui/setup/WebDavResourceAdapter.java @@ -5,7 +5,7 @@ * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/gpl.html */ -package at.bitfire.davdroid.syncadapter; +package at.bitfire.davdroid.ui.setup; import android.content.Context; import android.view.LayoutInflater; diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/main_activity.xml similarity index 100% rename from app/src/main/res/layout/activity_main.xml rename to app/src/main/res/layout/main_activity.xml diff --git a/app/src/main/res/layout/account_details.xml b/app/src/main/res/layout/setup_account_details.xml similarity index 100% rename from app/src/main/res/layout/account_details.xml rename to app/src/main/res/layout/setup_account_details.xml diff --git a/app/src/main/res/layout/add_account.xml b/app/src/main/res/layout/setup_add_account.xml similarity index 100% rename from app/src/main/res/layout/add_account.xml rename to app/src/main/res/layout/setup_add_account.xml diff --git a/app/src/main/res/layout/address_books_heading.xml b/app/src/main/res/layout/setup_address_books_heading.xml similarity index 100% rename from app/src/main/res/layout/address_books_heading.xml rename to app/src/main/res/layout/setup_address_books_heading.xml diff --git a/app/src/main/res/layout/calendars_heading.xml b/app/src/main/res/layout/setup_calendars_heading.xml similarity index 100% rename from app/src/main/res/layout/calendars_heading.xml rename to app/src/main/res/layout/setup_calendars_heading.xml diff --git a/app/src/main/res/layout/login_email.xml b/app/src/main/res/layout/setup_login_email.xml similarity index 100% rename from app/src/main/res/layout/login_email.xml rename to app/src/main/res/layout/setup_login_email.xml diff --git a/app/src/main/res/layout/login_type.xml b/app/src/main/res/layout/setup_login_type.xml similarity index 100% rename from app/src/main/res/layout/login_type.xml rename to app/src/main/res/layout/setup_login_type.xml diff --git a/app/src/main/res/layout/login_url.xml b/app/src/main/res/layout/setup_login_url.xml similarity index 100% rename from app/src/main/res/layout/login_url.xml rename to app/src/main/res/layout/setup_login_url.xml diff --git a/app/src/main/res/layout/query_server.xml b/app/src/main/res/layout/setup_query_server.xml similarity index 100% rename from app/src/main/res/layout/query_server.xml rename to app/src/main/res/layout/setup_query_server.xml diff --git a/app/src/main/res/layout/select_collections_header.xml b/app/src/main/res/layout/setup_select_collections_header.xml similarity index 100% rename from app/src/main/res/layout/select_collections_header.xml rename to app/src/main/res/layout/setup_select_collections_header.xml diff --git a/app/src/main/res/menu/account_details.xml b/app/src/main/res/menu/setup_account_details.xml similarity index 100% rename from app/src/main/res/menu/account_details.xml rename to app/src/main/res/menu/setup_account_details.xml diff --git a/app/src/main/res/menu/add_account.xml b/app/src/main/res/menu/setup_add_account.xml similarity index 100% rename from app/src/main/res/menu/add_account.xml rename to app/src/main/res/menu/setup_add_account.xml