1
0
mirror of https://github.com/etesync/android synced 2025-06-03 22:58:50 +00:00

Optimize soft keyboard handling, make resource detection dialog not cancelable

This commit is contained in:
Ricki Hirner 2015-11-09 11:31:40 +01:00
parent 2414b42867
commit 0f0acd62a3
No known key found for this signature in database
GPG Key ID: C4A212CF0B2B4566
8 changed files with 339 additions and 314 deletions

View File

@ -17,8 +17,8 @@ android {
minSdkVersion 14
targetSdkVersion 22
versionCode 83
versionName "0.9.1-beta1"
versionCode 84
versionName "0.9.1"
buildConfigField "java.util.Date", "buildTime", "new java.util.Date()"
}

View File

@ -104,7 +104,7 @@
</activity>
<activity
android:name=".ui.setup.AddAccountActivity"
android:excludeFromRecents="true" >
android:excludeFromRecents="true">
</activity>
<activity
android:name=".ui.settings.SettingsActivity"

View File

@ -9,6 +9,7 @@ package at.bitfire.davdroid.ui.setup;
import android.app.DialogFragment;
import android.app.Fragment;
import android.content.Context;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
@ -18,6 +19,7 @@ import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import java.net.URI;
@ -38,6 +40,7 @@ public class LoginEmailFragment extends Fragment implements TextWatcher {
editEmail = (EditText)v.findViewById(R.id.email_address);
editEmail.addTextChangedListener(this);
editPassword = (EditText)v.findViewById(R.id.password);
editPassword.addTextChangedListener(this);
@ -67,7 +70,7 @@ public class LoginEmailFragment extends Fragment implements TextWatcher {
DialogFragment dialog = new QueryServerDialogFragment();
dialog.setArguments(args);
dialog.show(getFragmentManager(), QueryServerDialogFragment.class.getName());
} catch(URISyntaxException e) {
} catch (URISyntaxException e) {
Constants.log.debug("Invalid email address", e);
}
break;
@ -77,6 +80,16 @@ public class LoginEmailFragment extends Fragment implements TextWatcher {
return true;
}
@Override
public void onResume() {
super.onResume();
// set focus and show soft keyboard
if (editEmail.requestFocus()) {
InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editEmail, InputMethodManager.SHOW_IMPLICIT);
}
}
// input validation
@ -91,7 +104,7 @@ public class LoginEmailFragment extends Fragment implements TextWatcher {
if (uri.isOpaque()) {
int pos = email.lastIndexOf("@");
if (pos != -1)
emailOk = !email.substring(pos+1).isEmpty();
emailOk = !email.substring(pos + 1).isEmpty();
}
} catch (URISyntaxException e) {
// invalid mailto: URI

View File

@ -9,6 +9,7 @@ package at.bitfire.davdroid.ui.setup;
import android.app.DialogFragment;
import android.app.Fragment;
import android.content.Context;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
@ -19,6 +20,7 @@ import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.CheckBox;
@ -72,7 +74,7 @@ public class LoginURLFragment extends Fragment implements TextWatcher {
editPassword = (EditText)v.findViewById(R.id.password);
editPassword.addTextChangedListener(this);
checkboxPreemptive = (CheckBox) v.findViewById(R.id.auth_preemptive);
checkboxPreemptive = (CheckBox)v.findViewById(R.id.auth_preemptive);
// hook into action bar
setHasOptionsMenu(true);
@ -101,7 +103,7 @@ public class LoginURLFragment extends Fragment implements TextWatcher {
DialogFragment dialog = new QueryServerDialogFragment();
dialog.setArguments(args);
dialog.show(getFragmentManager(), null);
} catch(URISyntaxException e) {
} catch (URISyntaxException e) {
Constants.log.debug("Invalid URI", e);
}
break;
@ -111,6 +113,16 @@ public class LoginURLFragment extends Fragment implements TextWatcher {
return true;
}
@Override
public void onResume() {
super.onResume();
// set focus and show soft keyboard
if (editBaseURI.requestFocus()) {
InputMethodManager imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editBaseURI, InputMethodManager.SHOW_IMPLICIT);
}
}
private URI getBaseURI() throws URISyntaxException {
String scheme = spnrScheme.getSelectedItem().toString(),

View File

@ -20,6 +20,8 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.content.Loader;
import android.os.Bundle;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import java.io.BufferedReader;
import java.io.IOException;
@ -48,15 +50,16 @@ public class QueryServerDialogFragment extends DialogFragment implements LoaderC
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
ProgressDialog dialog = new ProgressDialog(getActivity());
dialog.setCancelable(false);
dialog.setCanceledOnTouchOutside(false);
setCancelable(false);
dialog.setTitle(R.string.setup_resource_detection);
dialog.setIndeterminate(true);
dialog.setMessage(getString(R.string.setup_querying_server));
return dialog;
}
@Override
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -78,7 +81,7 @@ public class QueryServerDialogFragment extends DialogFragment implements LoaderC
.commitAllowingStateLoss();
} else {
((AddAccountActivity) getActivity()).serverInfo = serverInfo;
((AddAccountActivity)getActivity()).serverInfo = serverInfo;
// resource detection brought some results
Fragment nextFragment;

View File

@ -117,7 +117,7 @@ public class SelectCollectionsFragment extends ListFragment {
boolean ok = false;
try {
ok = getListView().getCheckedItemCount() > 0;
} catch(IllegalStateException e) {
} catch (IllegalStateException e) {
}
MenuItem item = menu.findItem(R.id.next);
item.setEnabled(ok);

View File

@ -50,7 +50,6 @@
android:id="@+id/password"
android:layout_gravity="fill_horizontal"
android:inputType="textPassword"
android:imeOptions="actionGo"
android:layout_width="0dp"
android:scrollHorizontally="true"
android:scrollbars="horizontal"

View File

@ -64,7 +64,6 @@
android:id="@+id/userName"
android:layout_gravity="fill_horizontal"
android:inputType="textNoSuggestions|textEmailAddress"
android:imeOptions="actionNext"
android:layout_width="0dp"
android:scrollHorizontally="true"
android:scrollbars="horizontal"
@ -78,7 +77,6 @@
android:id="@+id/password"
android:layout_gravity="fill_horizontal"
android:inputType="textPassword"
android:imeOptions="actionGo"
android:layout_width="0dp"
android:scrollHorizontally="true"
android:scrollbars="horizontal"