diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 841938264..f6bbf47fa 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -21,7 +21,9 @@ - + diff --git a/app/src/main/java/com/keylesspalace/tusky/BaseActivity.java b/app/src/main/java/com/keylesspalace/tusky/BaseActivity.java index cb0f0dec6..0fcd6ffd1 100644 --- a/app/src/main/java/com/keylesspalace/tusky/BaseActivity.java +++ b/app/src/main/java/com/keylesspalace/tusky/BaseActivity.java @@ -22,7 +22,6 @@ import android.graphics.Color; import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; import android.os.Bundle; -import android.preference.PreferenceManager; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.text.Spanned; @@ -68,7 +67,7 @@ public class BaseActivity extends AppCompatActivity { @Override protected void onDestroy() { - mastodonApiDispatcher.cancelAll(); + if(mastodonApiDispatcher != null) mastodonApiDispatcher.cancelAll(); super.onDestroy(); } diff --git a/app/src/main/java/com/keylesspalace/tusky/LoginActivity.java b/app/src/main/java/com/keylesspalace/tusky/LoginActivity.java index 91b05a321..1dbe84652 100644 --- a/app/src/main/java/com/keylesspalace/tusky/LoginActivity.java +++ b/app/src/main/java/com/keylesspalace/tusky/LoginActivity.java @@ -55,6 +55,11 @@ public class LoginActivity extends BaseActivity { @BindView(R.id.button_login) Button button; @BindView(R.id.no_account) TextView noAccount; + @Override + protected void createMastodonAPI() { + // Don't do this in this activity, since we don't know a domain yet + } + /** * Chain together the key-value pairs into a query string, for either appending to a URL or * as the content of an HTTP request. @@ -76,7 +81,7 @@ public class LoginActivity extends BaseActivity { private String validateDomain(String s) { s = s.replaceFirst("http://", ""); s = s.replaceFirst("https://", ""); - return s; + return s.trim(); } private String getOauthRedirectUri() { @@ -241,6 +246,17 @@ public class LoginActivity extends BaseActivity { Uri uri = getIntent().getData(); String redirectUri = getOauthRedirectUri(); + preferences = getSharedPreferences( + getString(R.string.preferences_file_key), Context.MODE_PRIVATE); + + if (preferences.getString("accessToken", null) != null && preferences.getString("domain", null) != null) { + // We are already logged in, go to MainActivity + Intent intent = new Intent(this, MainActivity.class); + startActivity(intent); + finish(); + return; + } + if (uri != null && uri.toString().startsWith(redirectUri)) { // This should either have returned an authorization code or an error. String code = uri.getQueryParameter("code"); @@ -250,8 +266,6 @@ public class LoginActivity extends BaseActivity { /* During the redirect roundtrip this Activity usually dies, which wipes out the * instance variables, so they have to be recovered from where they were saved in * SharedPreferences. */ - preferences = getSharedPreferences( - getString(R.string.preferences_file_key), Context.MODE_PRIVATE); domain = preferences.getString("domain", null); clientId = preferences.getString("clientId", null); clientSecret = preferences.getString("clientSecret", null); diff --git a/app/src/main/res/drawable/elephant_friend.png b/app/src/main/res/drawable/elephant_friend.png index 93e8ec1ac..3c5145ba9 100644 Binary files a/app/src/main/res/drawable/elephant_friend.png and b/app/src/main/res/drawable/elephant_friend.png differ diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 6a3a901fd..27d855498 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -1,63 +1,55 @@ - - + android:padding="16dp" + android:gravity="center" + android:layout_height="wrap_content"> - + android:layout_marginBottom="50dp" + android:src="@drawable/elephant_friend"/> - + + android:inputType="textUri" + android:hint="@string/hint_domain" + android:ems="10" + android:id="@+id/edit_text_domain" /> + - - - +