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 @@ + + + + + + + + + + + + + + + + + +