diff --git a/app/src/main/java/org/mian/gitnex/activities/AddNewAccountActivity.java b/app/src/main/java/org/mian/gitnex/activities/AddNewAccountActivity.java index ba653470..6f757200 100644 --- a/app/src/main/java/org/mian/gitnex/activities/AddNewAccountActivity.java +++ b/app/src/main/java/org/mian/gitnex/activities/AddNewAccountActivity.java @@ -40,6 +40,7 @@ public class AddNewAccountActivity extends BaseActivity { private ActivityAddNewAccountBinding viewBinding; private enum Protocol {HTTPS, HTTP} + private String spinnerSelectedValue; @Override protected int getLayoutResourceId() { @@ -63,12 +64,11 @@ public class AddNewAccountActivity extends BaseActivity { initCloseListener(); viewBinding.close.setOnClickListener(onClickListener); - ArrayAdapter adapterProtocols = new ArrayAdapter<>(AddNewAccountActivity.this, R.layout.spinner_item, - AddNewAccountActivity.Protocol.values()); - adapterProtocols.setDropDownViewResource(R.layout.spinner_dropdown_item); - + ArrayAdapter adapterProtocols = new ArrayAdapter<>(ctx, R.layout.list_spinner_items, Protocol.values()); viewBinding.protocolSpinner.setAdapter(adapterProtocols); + viewBinding.protocolSpinner.setOnItemClickListener((parent, view1, position, id) -> spinnerSelectedValue = String.valueOf(parent.getItemAtPosition(position))); + viewBinding.addNewAccount.setOnClickListener(login -> { boolean connToInternet = AppUtil.hasNetworkConnection(appCtx); @@ -90,9 +90,15 @@ public class AddNewAccountActivity extends BaseActivity { try { - String instanceUrlET = viewBinding.instanceUrl.getText().toString(); - String loginToken = viewBinding.loginToken.getText().toString(); - Protocol protocol = (Protocol) viewBinding.protocolSpinner.getSelectedItem(); + String instanceUrlET = String.valueOf(viewBinding.instanceUrl.getText()); + String loginToken = String.valueOf(viewBinding.loginToken.getText()); + String protocol = spinnerSelectedValue; + + if(protocol == null) { + + Toasty.error(ctx, getResources().getString(R.string.protocolEmptyError)); + return; + } if(instanceUrlET.equals("")) { @@ -109,7 +115,7 @@ public class AddNewAccountActivity extends BaseActivity { URI rawInstanceUrl = UrlBuilder.fromString(UrlHelper.fixScheme(instanceUrlET, "http")).toUri(); URI instanceUrlWithProtocol = UrlBuilder.fromUri(rawInstanceUrl).withPath(PathsHelper.join(rawInstanceUrl.getPath())) - .withScheme(protocol.name().toLowerCase()).toUri(); + .withScheme(protocol.toLowerCase()).toUri(); URI instanceUrl = UrlBuilder.fromUri(instanceUrlWithProtocol).withPath(PathsHelper.join(instanceUrlWithProtocol.getPath(), "/api/v1/")) .toUri(); diff --git a/app/src/main/res/layout/activity_add_new_account.xml b/app/src/main/res/layout/activity_add_new_account.xml index 2b921e22..d2019eca 100644 --- a/app/src/main/res/layout/activity_add_new_account.xml +++ b/app/src/main/res/layout/activity_add_new_account.xml @@ -55,65 +55,91 @@ android:padding="16dp" app:layout_constraintTop_toTopOf="parent"> - + app:boxBackgroundColor="?attr/inputBackgroundColor" + android:textColorHint="?attr/hintColor" + app:hintTextColor="?attr/hintColor" + android:layout_marginTop="8dp" + android:layout_marginBottom="8dp" + android:hint="@string/protocol" + app:endIconTint="?attr/iconsColor" + style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu"> - + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:inputType="none" + android:textColor="?attr/inputTextColor" + android:labelFor="@+id/protocolSpinner" + android:textSize="16sp" /> - + - + app:hintTextColor="?attr/hintColor" + app:boxStrokeErrorColor="@color/darkRed" + android:layout_marginTop="8dp" + android:layout_marginBottom="8dp" + app:startIconDrawable="@drawable/ic_link" + app:startIconTint="?attr/iconsColor" + app:endIconMode="clear_text" + app:endIconTint="?attr/iconsColor" + android:hint="@string/instanceUrl"> - + + + + + app:hintTextColor="?attr/hintColor" + app:boxStrokeErrorColor="@color/darkRed" + android:layout_marginTop="8dp" + android:layout_marginBottom="8dp" + app:startIconDrawable="@drawable/ic_lock" + app:startIconTint="?attr/iconsColor" + app:endIconMode="clear_text" + app:endIconTint="?attr/iconsColor" + android:hint="@string/copyToken"> + + + +