diff options
author | knuthy <knuthy@gmail.com> | 2014-10-02 09:20:23 +0200 |
---|---|---|
committer | knuthy <knuthy@gmail.com> | 2014-10-02 09:20:23 +0200 |
commit | 7ad91f5356a729e1ff013cb651bc8cfc6fca1412 (patch) | |
tree | 4f6cb28a8899491c801e7faa66667accaa5fd27e /app/src/main | |
parent | c11e6eab84b228d42219c770106ce9b9f363e25d (diff) |
support non-physical keyboard for clone
Diffstat (limited to 'app/src/main')
-rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/GitHandler.java | 88 | ||||
-rw-r--r-- | app/src/main/res/drawable/bottom_line.xml | 2 | ||||
-rw-r--r-- | app/src/main/res/layout/activity_git_clone.xml | 334 |
3 files changed, 243 insertions, 181 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/GitHandler.java b/app/src/main/java/com/zeapo/pwdstore/GitHandler.java index 651b23d7..43bcfca8 100644 --- a/app/src/main/java/com/zeapo/pwdstore/GitHandler.java +++ b/app/src/main/java/com/zeapo/pwdstore/GitHandler.java @@ -8,7 +8,9 @@ import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; +import android.text.Editable; import android.text.InputType; +import android.text.TextWatcher; import android.util.Log; import android.view.KeyEvent; import android.view.Menu; @@ -149,17 +151,16 @@ public class GitHandler extends Activity { }); // init the server information - EditText server_url = ((EditText) findViewById(R.id.server_url)); - EditText server_port = ((EditText) findViewById(R.id.server_port)); - EditText server_path = ((EditText) findViewById(R.id.server_path)); - EditText server_user = ((EditText) findViewById(R.id.server_user)); + final EditText server_url = ((EditText) findViewById(R.id.server_url)); + final EditText server_port = ((EditText) findViewById(R.id.server_port)); + final EditText server_path = ((EditText) findViewById(R.id.server_path)); + final EditText server_user = ((EditText) findViewById(R.id.server_user)); final EditText server_uri = ((EditText)findViewById(R.id.clone_uri)); - View.OnKeyListener updateListener = new View.OnKeyListener() { + View.OnFocusChangeListener updateListener = new View.OnFocusChangeListener() { @Override - public boolean onKey(View view, int i, KeyEvent keyEvent) { + public void onFocusChange(View view, boolean b) { updateURI(); - return false; } }; @@ -168,16 +169,72 @@ public class GitHandler extends Activity { server_user.setText(settings.getString("git_remote_username", "")); server_path.setText(settings.getString("git_remote_location", "")); - server_url.setOnKeyListener(updateListener); - server_port.setOnKeyListener(updateListener); - server_user.setOnKeyListener(updateListener); - server_path.setOnKeyListener(updateListener); + server_url.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) { } + + @Override + public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) { + if (server_url.isFocused()) + updateURI(); + } + + @Override + public void afterTextChanged(Editable editable) { } + }); + server_port.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) { } + + @Override + public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) { + if (server_port.isFocused()) + updateURI(); + } + + @Override + public void afterTextChanged(Editable editable) { } + }); + server_user.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) { } + + @Override + public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) { + if (server_user.isFocused()) + updateURI(); + } + + @Override + public void afterTextChanged(Editable editable) { } + }); + server_path.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) { } + + @Override + public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) { + if (server_path.isFocused()) + updateURI(); + } + + @Override + public void afterTextChanged(Editable editable) { } + }); + + server_uri.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) { + } + + @Override + public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) { + if (server_uri.isFocused()) + splitURI(); + } - server_uri.setOnKeyListener(new View.OnKeyListener() { @Override - public boolean onKey(View view, int i, KeyEvent keyEvent) { - splitURI(); - return false; + public void afterTextChanged(Editable editable) { } }); @@ -201,6 +258,7 @@ public class GitHandler extends Activity { EditText server_port = ((EditText) findViewById(R.id.server_port)); EditText server_path = ((EditText) findViewById(R.id.server_path)); EditText server_user = ((EditText) findViewById(R.id.server_user)); + Log.i("GIT", "key entred"); if (uri != null) { String hostname = diff --git a/app/src/main/res/drawable/bottom_line.xml b/app/src/main/res/drawable/bottom_line.xml index c24a04df..fab0b04f 100644 --- a/app/src/main/res/drawable/bottom_line.xml +++ b/app/src/main/res/drawable/bottom_line.xml @@ -8,7 +8,7 @@ <item android:bottom="2dp"> <shape android:shape="rectangle"> - <solid android:color="#FFFFFF" /> + <solid android:color="@android:color/white" /> </shape> </item> </layer-list> diff --git a/app/src/main/res/layout/activity_git_clone.xml b/app/src/main/res/layout/activity_git_clone.xml index a173f6f6..f1adcd6d 100644 --- a/app/src/main/res/layout/activity_git_clone.xml +++ b/app/src/main/res/layout/activity_git_clone.xml @@ -1,4 +1,4 @@ -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" +<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" @@ -7,193 +7,197 @@ android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context="com.zeapo.pwdstore.GitHandler" - android:orientation="vertical"> - - <TextView - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:text="@string/server_name" - android:textStyle="bold" - style="@android:style/TextAppearance.Large" - android:gravity="left" - android:paddingBottom="6dp" - android:textColor="@android:color/holo_orange_dark" - android:background="@drawable/bottom_line"/> - - <RelativeLayout + android:background="@android:color/white"> + <LinearLayout android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="horizontal" - android:layout_gravity="center_vertical"> - + android:layout_height="match_parent" + android:orientation="vertical"> <TextView - android:layout_width="wrap_content" + android:layout_width="fill_parent" android:layout_height="wrap_content" - android:text="@string/server_protocol" - android:id="@+id/label_server_protocol" - android:layout_centerVertical="true" - android:layout_alignParentLeft="true" - android:layout_alignParentStart="true" /> - - <Spinner - android:id="@+id/clone_protocol" + android:text="@string/server_name" + android:textStyle="bold" + style="@android:style/TextAppearance.Large" + android:gravity="left" + android:paddingBottom="6dp" + android:textColor="@android:color/holo_orange_dark" + android:background="@drawable/bottom_line"/> + + <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_toEndOf="@+id/label_server_protocol" - android:layout_toRightOf="@+id/label_server_protocol" /> - </RelativeLayout> - - <RelativeLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="horizontal" - android:layout_gravity="center_vertical"> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/server_user" - android:id="@+id/label_server_user" - android:layout_centerVertical="true" - android:layout_alignParentLeft="true" - android:layout_alignParentStart="true" /> - - <EditText + android:orientation="horizontal" + android:layout_gravity="center_vertical"> + + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/server_protocol" + android:id="@+id/label_server_protocol" + android:layout_centerVertical="true" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" /> + + <Spinner + android:id="@+id/clone_protocol" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_toEndOf="@+id/label_server_protocol" + android:layout_toRightOf="@+id/label_server_protocol" /> + </RelativeLayout> + + <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:hint="@string/server_user_hint" - android:id="@+id/server_user" - android:layout_toEndOf="@+id/label_server_user" - android:layout_toRightOf="@+id/label_server_user" - android:layout_alignParentRight="true" - android:layout_alignParentEnd="true"/> - </RelativeLayout> - <RelativeLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="horizontal" - android:layout_gravity="center_vertical"> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/server_url" - android:id="@+id/label_server_url" - android:layout_centerVertical="true" - android:layout_alignParentLeft="true" - android:layout_alignParentStart="true" /> - - <EditText + android:orientation="horizontal" + android:layout_gravity="center_vertical"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/server_user" + android:id="@+id/label_server_user" + android:layout_centerVertical="true" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" /> + + <EditText + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:hint="@string/server_user_hint" + android:id="@+id/server_user" + android:layout_toEndOf="@+id/label_server_user" + android:layout_toRightOf="@+id/label_server_user" + android:layout_alignParentRight="true" + android:layout_alignParentEnd="true"/> + </RelativeLayout> + <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:hint="@string/server_url_hint" - android:id="@+id/server_url" - android:layout_toEndOf="@+id/label_server_url" - android:layout_toRightOf="@+id/label_server_url" - android:layout_toLeftOf="@+id/label_server_port" - android:layout_toStartOf="@+id/label_server_port" /> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text=":" - android:id="@+id/label_server_port" - android:layout_centerVertical="true" - android:layout_toLeftOf="@+id/server_port" - android:layout_toStartOf="@+id/server_port" /> - <EditText - android:layout_width="wrap_content" + android:orientation="horizontal" + android:layout_gravity="center_vertical"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/server_url" + android:id="@+id/label_server_url" + android:layout_centerVertical="true" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" /> + + <EditText + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:hint="@string/server_url_hint" + android:id="@+id/server_url" + android:layout_toEndOf="@+id/label_server_url" + android:layout_toRightOf="@+id/label_server_url" + android:layout_toLeftOf="@+id/label_server_port" + android:layout_toStartOf="@+id/label_server_port" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text=":" + android:id="@+id/label_server_port" + android:layout_centerVertical="true" + android:layout_toLeftOf="@+id/server_port" + android:layout_toStartOf="@+id/server_port" /> + <EditText + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:hint="@string/server_port_hint" + android:id="@+id/server_port" + android:layout_alignParentRight="true"/> + + </RelativeLayout> + + <RelativeLayout + android:layout_width="match_parent" android:layout_height="wrap_content" - android:hint="@string/server_port_hint" - android:id="@+id/server_port" - android:layout_alignParentRight="true"/> - - </RelativeLayout> + android:orientation="horizontal" + android:layout_gravity="center_vertical"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/server_path" + android:id="@+id/label_server_path" + android:layout_centerVertical="true" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" /> + + <EditText + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:hint="@string/server_path_hint" + android:id="@+id/server_path" + android:layout_toEndOf="@+id/label_server_path" + android:layout_toRightOf="@+id/label_server_path" + android:layout_alignParentRight="true" + android:layout_alignParentEnd="true"/> + </RelativeLayout> - <RelativeLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="horizontal" - android:layout_gravity="center_vertical"> <TextView - android:layout_width="wrap_content" + android:layout_width="fill_parent" android:layout_height="wrap_content" - android:text="@string/server_path" - android:id="@+id/label_server_path" - android:layout_centerVertical="true" - android:layout_alignParentLeft="true" - android:layout_alignParentStart="true" /> + android:text="@string/server_resulting_url" + android:textStyle="bold" + style="@android:style/TextAppearance.Large" + android:gravity="left" + android:paddingBottom="6dp" + android:textColor="@android:color/holo_orange_dark" + android:background="@drawable/bottom_line"/> <EditText + android:hint="Repository URI" + android:id="@+id/clone_uri" android:layout_width="match_parent" android:layout_height="wrap_content" - android:hint="@string/server_path_hint" - android:id="@+id/server_path" - android:layout_toEndOf="@+id/label_server_path" - android:layout_toRightOf="@+id/label_server_path" - android:layout_alignParentRight="true" - android:layout_alignParentEnd="true"/> - </RelativeLayout> - - - <TextView - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:text="@string/server_resulting_url" - android:textStyle="bold" - style="@android:style/TextAppearance.Large" - android:gravity="left" - android:paddingBottom="6dp" - android:textColor="@android:color/holo_orange_dark" - android:background="@drawable/bottom_line"/> - - <EditText - android:hint="Repository URI" - android:id="@+id/clone_uri" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:inputType="textWebEmailAddress"/> - - <TextView - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:background="@drawable/red_rectangle" - android:textColor="@android:color/white" - android:visibility="gone" - android:id="@+id/warn_url"/> - - <RelativeLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="horizontal" - android:layout_gravity="center_vertical"> - + android:inputType="textWebEmailAddress"/> <TextView - android:layout_width="wrap_content" + android:layout_width="match_parent" android:layout_height="wrap_content" - android:text="@string/connection_mode" - android:id="@+id/label_connection_mode" - android:layout_centerVertical="true" - android:layout_alignParentLeft="true" - android:layout_alignParentStart="true" /> + android:background="@drawable/red_rectangle" + android:textColor="@android:color/white" + android:visibility="gone" + android:id="@+id/warn_url"/> - <Spinner + <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:id="@+id/connection_mode" - android:layout_toEndOf="@+id/label_connection_mode" - android:layout_toRightOf="@+id/label_connection_mode" /> - </RelativeLayout> - - <Button - android:id="@+id/clone_button" - android:text="Clone!" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:onClick="cloneRepository"/> - + android:orientation="horizontal" + android:layout_gravity="center_vertical"> + + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/connection_mode" + android:id="@+id/label_connection_mode" + android:layout_centerVertical="true" + android:layout_alignParentLeft="true" + android:layout_alignParentStart="true" /> + + <Spinner + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:id="@+id/connection_mode" + android:layout_toEndOf="@+id/label_connection_mode" + android:layout_toRightOf="@+id/label_connection_mode" /> + </RelativeLayout> + + <Button + android:id="@+id/clone_button" + android:text="Clone!" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:onClick="cloneRepository"/> + </LinearLayout> -</LinearLayout> +</ScrollView> |