diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d7d04b2..12d4729 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -13,7 +13,8 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.StarshipHyperlink">
-
+
+
diff --git a/app/src/main/java/dev/garrettmills/starship/hyperlink/LoginTokenFormActivity.java b/app/src/main/java/dev/garrettmills/starship/hyperlink/LoginTokenFormActivity.java
new file mode 100644
index 0000000..8c83b99
--- /dev/null
+++ b/app/src/main/java/dev/garrettmills/starship/hyperlink/LoginTokenFormActivity.java
@@ -0,0 +1,40 @@
+package dev.garrettmills.starship.hyperlink;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import dev.garrettmills.starship.hyperlink.util.LoginToken;
+
+public class LoginTokenFormActivity extends AppCompatActivity {
+ EditText serverInput;
+ EditText tokenInput;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_login_token_form);
+
+ serverInput = findViewById(R.id.activity_login_token_form_serverEditText);
+ tokenInput = findViewById(R.id.activity_login_token_form_tokenEditText);
+ }
+
+ public void onContinueClick(View view) {
+ if ( serverInput.getText().length() > 0 && tokenInput.getText().length() > 0 ) {
+ String loginToken = "hyperlink|" + serverInput.getText().toString() + "|" + tokenInput.getText().toString();
+ if ( !LoginToken.isValidLoginToken(loginToken) ) {
+ Toast.makeText(this, "Invalid credentials. Make sure both the server and token are the proper format.", Toast.LENGTH_LONG);
+ return;
+ }
+
+ Intent result = new Intent();
+ result.putExtra(Hyperlink.EXTRA_LOGIN_TOKEN, loginToken);
+ setResult(RESULT_OK, result);
+ finish();
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/dev/garrettmills/starship/hyperlink/LoginTokenScannerActivity.java b/app/src/main/java/dev/garrettmills/starship/hyperlink/LoginTokenScannerActivity.java
index 0f88346..ce9d6da 100644
--- a/app/src/main/java/dev/garrettmills/starship/hyperlink/LoginTokenScannerActivity.java
+++ b/app/src/main/java/dev/garrettmills/starship/hyperlink/LoginTokenScannerActivity.java
@@ -104,7 +104,7 @@ public class LoginTokenScannerActivity extends AppCompatActivity implements QRCo
}
public void onQRCodeFound(String qrCode) {
- if ( !isValidLoginToken(qrCode) ) return;
+ if ( !LoginToken.isValidLoginToken(qrCode) ) return;
Intent result = new Intent();
result.putExtra(Hyperlink.EXTRA_LOGIN_TOKEN, qrCode);
@@ -114,13 +114,4 @@ public class LoginTokenScannerActivity extends AppCompatActivity implements QRCo
}
public void onQRCodeNotFound() {}
-
- public boolean isValidLoginToken(String token) {
- try {
- new LoginToken(token);
- return true;
- } catch (InvalidLoginTokenException e) {
- return false;
- }
- }
}
diff --git a/app/src/main/java/dev/garrettmills/starship/hyperlink/MainActivity.java b/app/src/main/java/dev/garrettmills/starship/hyperlink/MainActivity.java
index f858c89..5d4fde9 100644
--- a/app/src/main/java/dev/garrettmills/starship/hyperlink/MainActivity.java
+++ b/app/src/main/java/dev/garrettmills/starship/hyperlink/MainActivity.java
@@ -21,6 +21,11 @@ public class MainActivity extends AppCompatActivity {
startActivityForResult(intent, Hyperlink.REQUEST_LOGIN_TOKEN);
}
+ public void onEnterCredentialsClick(View view) {
+ Intent intent = new Intent(this, LoginTokenFormActivity.class);
+ startActivityForResult(intent, Hyperlink.REQUEST_LOGIN_TOKEN);
+ }
+
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
diff --git a/app/src/main/java/dev/garrettmills/starship/hyperlink/util/LoginToken.java b/app/src/main/java/dev/garrettmills/starship/hyperlink/util/LoginToken.java
index 2e1ec90..d940da5 100644
--- a/app/src/main/java/dev/garrettmills/starship/hyperlink/util/LoginToken.java
+++ b/app/src/main/java/dev/garrettmills/starship/hyperlink/util/LoginToken.java
@@ -1,6 +1,15 @@
package dev.garrettmills.starship.hyperlink.util;
public class LoginToken {
+ public static boolean isValidLoginToken(String token) {
+ try {
+ new LoginToken(token);
+ return true;
+ } catch (InvalidLoginTokenException e) {
+ return false;
+ }
+ }
+
private String _server;
private String _token;
diff --git a/app/src/main/res/layout/activity_login_token_form.xml b/app/src/main/res/layout/activity_login_token_form.xml
new file mode 100644
index 0000000..a2252b4
--- /dev/null
+++ b/app/src/main/res/layout/activity_login_token_form.xml
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 0f4368f..bb56639 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -7,7 +7,7 @@
tools:context=".MainActivity">
+
+
\ No newline at end of file