aboutsummaryrefslogtreecommitdiffstats
path: root/main/src
diff options
context:
space:
mode:
Diffstat (limited to 'main/src')
-rw-r--r--main/src/cgeo/geocaching/activity/AbstractActivity.java10
-rw-r--r--main/src/cgeo/geocaching/activity/Keyboard.java40
-rw-r--r--main/src/cgeo/geocaching/ui/EditNoteDialog.java13
3 files changed, 56 insertions, 7 deletions
diff --git a/main/src/cgeo/geocaching/activity/AbstractActivity.java b/main/src/cgeo/geocaching/activity/AbstractActivity.java
index 36b6d01..510969b 100644
--- a/main/src/cgeo/geocaching/activity/AbstractActivity.java
+++ b/main/src/cgeo/geocaching/activity/AbstractActivity.java
@@ -7,12 +7,10 @@ import cgeo.geocaching.compatibility.Compatibility;
import cgeo.geocaching.network.Cookies;
import cgeo.geocaching.settings.Settings;
-import android.content.Context;
import android.content.res.Resources;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
-import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
public abstract class AbstractActivity extends FragmentActivity implements IAbstractActivity {
@@ -96,7 +94,7 @@ public abstract class AbstractActivity extends FragmentActivity implements IAbst
// create view variables
ButterKnife.inject(this);
}
-
+
private void initializeCommonFields() {
// initialize commonly used members
res = this.getResources();
@@ -116,6 +114,10 @@ public abstract class AbstractActivity extends FragmentActivity implements IAbst
}
protected void hideKeyboard() {
- ((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0);
+ new Keyboard(this).hide();
+ }
+
+ public void showKeyboard(final View view) {
+ new Keyboard(this).show(view);
}
}
diff --git a/main/src/cgeo/geocaching/activity/Keyboard.java b/main/src/cgeo/geocaching/activity/Keyboard.java
new file mode 100644
index 0000000..9bae7be
--- /dev/null
+++ b/main/src/cgeo/geocaching/activity/Keyboard.java
@@ -0,0 +1,40 @@
+package cgeo.geocaching.activity;
+
+import org.eclipse.jdt.annotation.NonNull;
+
+import android.app.Activity;
+import android.content.Context;
+import android.view.View;
+import android.view.inputmethod.InputMethodManager;
+
+/**
+ * Class for hiding/showing the soft keyboard on Android.
+ *
+ */
+public class Keyboard {
+ private final Activity activity;
+
+ public Keyboard(final @NonNull Activity activity) {
+ this.activity = activity;
+ }
+
+ public void hide() {
+ ((InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0);
+ }
+
+ public void show(final View view) {
+ view.requestFocus();
+ ((InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(view, 0);
+ }
+
+ public void showDelayed(final View view) {
+ view.postDelayed(new Runnable() {
+
+ @Override
+ public void run() {
+ final InputMethodManager keyboard = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
+ keyboard.showSoftInput(view, 0);
+ }
+ }, 50);
+ }
+}
diff --git a/main/src/cgeo/geocaching/ui/EditNoteDialog.java b/main/src/cgeo/geocaching/ui/EditNoteDialog.java
index 4bfa140..63f06fc 100644
--- a/main/src/cgeo/geocaching/ui/EditNoteDialog.java
+++ b/main/src/cgeo/geocaching/ui/EditNoteDialog.java
@@ -1,13 +1,17 @@
package cgeo.geocaching.ui;
import cgeo.geocaching.R;
+import cgeo.geocaching.activity.Keyboard;
import cgeo.geocaching.ui.dialog.Dialogs;
+import org.eclipse.jdt.annotation.NonNull;
+
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
+import android.support.v4.app.FragmentActivity;
import android.view.ContextThemeWrapper;
import android.view.View;
import android.widget.EditText;
@@ -36,7 +40,8 @@ public class EditNoteDialog extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
- View view = View.inflate(new ContextThemeWrapper(getActivity(), R.style.dark), R.layout.fragment_edit_note, null);
+ final @NonNull FragmentActivity activity = getActivity();
+ View view = View.inflate(new ContextThemeWrapper(activity, R.style.dark), R.layout.fragment_edit_note, null);
mEditText = (EditText) view.findViewById(R.id.note);
String initialNote = getArguments().getString(ARGUMENT_INITIAL_NOTE);
if (initialNote != null) {
@@ -45,7 +50,7 @@ public class EditNoteDialog extends DialogFragment {
getArguments().remove(ARGUMENT_INITIAL_NOTE);
}
- AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+ AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle(R.string.cache_personal_note);
builder.setView(view);
builder.setPositiveButton(android.R.string.ok,
@@ -63,6 +68,8 @@ public class EditNoteDialog extends DialogFragment {
dialog.dismiss();
}
});
- return builder.create();
+ final AlertDialog dialog = builder.create();
+ new Keyboard(activity).showDelayed(mEditText);
+ return dialog;
}
}