diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5f6751ce..f28155de 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -8,7 +8,7 @@ diff --git a/app/src/main/java/com/keylesspalace/tusky/LoginActivity.java b/app/src/main/java/com/keylesspalace/tusky/LoginActivity.java index 6646c4da..39352fe3 100644 --- a/app/src/main/java/com/keylesspalace/tusky/LoginActivity.java +++ b/app/src/main/java/com/keylesspalace/tusky/LoginActivity.java @@ -15,13 +15,16 @@ package com.keylesspalace.tusky; +import android.app.AlertDialog; import android.content.Context; +import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.net.Uri; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; +import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; @@ -41,6 +44,7 @@ import java.util.HashMap; import java.util.Map; public class LoginActivity extends AppCompatActivity { + private static final String TAG = "LoginActivity"; private static String OAUTH_SCOPES = "read write follow"; private SharedPreferences preferences; @@ -94,7 +98,7 @@ public class LoginActivity extends AppCompatActivity { queryParameters = toQueryString(parameters); } catch (UnsupportedEncodingException e) { //TODO: No clue how to handle this error case?? - assert(false); + Log.e(TAG, "Was not able to build the authorization URL."); return; } String url = "https://" + domain + endpoint + "?" + queryParameters; @@ -109,7 +113,6 @@ public class LoginActivity extends AppCompatActivity { */ private void onButtonClick(final EditText editText) { domain = validateDomain(editText.getText().toString()); - assert(domain != null); /* Attempt to get client credentials from SharedPreferences, and if not present * (such as in the case that the domain has never been accessed before) * authenticate with the server and store the received credentials to use next @@ -127,7 +130,7 @@ public class LoginActivity extends AppCompatActivity { parameters.put("redirect_uris", getOauthRedirectUri()); parameters.put("scopes", OAUTH_SCOPES); } catch (JSONException e) { - //TODO: error text???? + Log.e(TAG, "Unable to build the form data for the authentication request."); return; } JsonObjectRequest request = new JsonObjectRequest( @@ -139,7 +142,7 @@ public class LoginActivity extends AppCompatActivity { clientId = response.getString("client_id"); clientSecret = response.getString("client_secret"); } catch (JSONException e) { - //TODO: Heck + Log.e(TAG, "Couldn't get data from the authentication response."); return; } SharedPreferences.Editor editor = preferences.edit(); @@ -177,6 +180,23 @@ public class LoginActivity extends AppCompatActivity { onButtonClick(editText); } }); + TextView noAccount = (TextView) findViewById(R.id.no_account); + final Context context = this; + noAccount.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new AlertDialog.Builder(context) + .setMessage(R.string.dialog_no_account) + .setPositiveButton(R.string.action_close, + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + } + }) + .show(); + } + }); } @Override @@ -258,7 +278,6 @@ public class LoginActivity extends AppCompatActivity { * can try again. */ errorText.setText(error); } else { - assert(false); // This case means a junk response was received somehow. errorText.setText("An unidentified authorization error occurred."); } diff --git a/app/src/main/java/com/keylesspalace/tusky/SplashActivity.java b/app/src/main/java/com/keylesspalace/tusky/SplashActivity.java index 865e8e41..1297196c 100644 --- a/app/src/main/java/com/keylesspalace/tusky/SplashActivity.java +++ b/app/src/main/java/com/keylesspalace/tusky/SplashActivity.java @@ -21,13 +21,6 @@ import android.content.SharedPreferences; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; -import com.android.volley.Request; -import com.android.volley.Response; -import com.android.volley.toolbox.JsonObjectRequest; - -import org.json.JSONException; -import org.json.JSONObject; - public class SplashActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { diff --git a/app/src/main/res/drawable/ic_logo.xml b/app/src/main/res/drawable/ic_logo.xml new file mode 100644 index 00000000..eabd8289 --- /dev/null +++ b/app/src/main/res/drawable/ic_logo.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/splash_background.xml b/app/src/main/res/drawable/splash_background.xml index fe6792bf..46c39b01 100644 --- a/app/src/main/res/drawable/splash_background.xml +++ b/app/src/main/res/drawable/splash_background.xml @@ -1,9 +1,5 @@ - - - + diff --git a/app/src/main/res/layout/activity_compose.xml b/app/src/main/res/layout/activity_compose.xml index a2586b86..4e1d5468 100644 --- a/app/src/main/res/layout/activity_compose.xml +++ b/app/src/main/res/layout/activity_compose.xml @@ -43,7 +43,8 @@ android:layout_height="wrap_content" android:inputType="text" android:ems="10" - android:id="@+id/field_content_warning" /> + android:id="@+id/field_content_warning" + android:hint="@string/hint_content_warning" /> @@ -59,7 +60,7 @@ android:ems="10" android:gravity="top|start" android:id="@+id/field_status" - android:contentDescription="@string/description_compose" /> + android:hint="@string/hint_compose" /> @@ -45,7 +45,14 @@ android:layout_height="wrap_content" android:id="@+id/text_error" /> + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9f6edb2c..121daab0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -92,14 +92,24 @@ Hide text behind warning Ok Cancel + Close Back Profile Open In Web Toot! - Domain - What\'s Happening? + example.com + What\'s Happening? + Beware, folks + + No account? + + + Similar to an email address, a Mastodon account can be provided by any one of many + websites.\n\nSo, find the address of one you\'d like to join and enter it here. This will + direct you there to either make an account or log in. + Show on public timeline Do not display on public timeline