diff --git a/app/src/main/java/eu/stuifzand/micropub/auth/AuthenticationActivity.java b/app/src/main/java/eu/stuifzand/micropub/auth/AuthenticationActivity.java index d7d714c..f3a6978 100644 --- a/app/src/main/java/eu/stuifzand/micropub/auth/AuthenticationActivity.java +++ b/app/src/main/java/eu/stuifzand/micropub/auth/AuthenticationActivity.java @@ -9,6 +9,7 @@ import android.os.Build; import android.os.Bundle; import android.support.annotation.RequiresApi; import android.util.Log; +import android.webkit.WebResourceError; import android.webkit.WebResourceRequest; import android.webkit.WebSettings; import android.webkit.WebView; @@ -40,17 +41,24 @@ public class AuthenticationActivity extends AccountAuthenticatorActivity { WebView webview = findViewById(R.id.webview); WebSettings webSettings = webview.getSettings(); webSettings.setJavaScriptEnabled(true); - + webSettings.setDomStorageEnabled(true); + webSettings.setUserAgentString(getString(R.string.user_agent)); HttpUrl.Builder builder = HttpUrl.parse(endpoint).newBuilder(); builder.setQueryParameter("me", me) .setQueryParameter("client_id", "https://stuifzand.eu/micropub") .setQueryParameter("redirect_uri", "https://stuifzand.eu/micropub-auth") .setQueryParameter("response_type", "code") - .setQueryParameter("state", "1234") - .setQueryParameter("scope", "create edit update post delete"); - Log.i("micropub", builder.toString()); + .setQueryParameter("state", "1234") // @TODO use random states, check the state later + .setQueryParameter("scope", "create edit update post delete"); // @TODO use different scope + Log.i("micropub", "LoadUrl: " + builder.toString()); webview.loadUrl(builder.toString()); webview.setWebViewClient(new WebViewClient() { + @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) + @Override + public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { + Log.i("micropub", request.getMethod()+ " "+request.getUrl()); + Log.i("micropub", error.toString()); + } @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) public boolean shouldOverrideUrlLoading(WebView viewx, WebResourceRequest request) { diff --git a/app/src/main/java/eu/stuifzand/micropub/auth/Authenticator.java b/app/src/main/java/eu/stuifzand/micropub/auth/Authenticator.java index b758b03..1d2d17b 100644 --- a/app/src/main/java/eu/stuifzand/micropub/auth/Authenticator.java +++ b/app/src/main/java/eu/stuifzand/micropub/auth/Authenticator.java @@ -9,6 +9,7 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; +import android.util.Log; import com.google.gson.JsonObject; import com.google.gson.JsonParser; @@ -93,12 +94,14 @@ public class Authenticator extends AbstractAccountAuthenticator { Response tokenResponse = null; try { tokenResponse = call.execute(); - ResponseBody body = tokenResponse.body(); - JsonParser parser = new JsonParser(); - JsonObject element = parser.parse(body.string()).getAsJsonObject(); - authToken = element.get("access_token").getAsString(); + if (tokenResponse.isSuccessful()) { + ResponseBody body = tokenResponse.body(); + JsonParser parser = new JsonParser(); + JsonObject element = parser.parse(body.string()).getAsJsonObject(); + authToken = element.get("access_token").getAsString(); + } } catch (IOException e) { - + Log.e("micropub", "Failed getting token response", e); } finally { if (tokenResponse != null) { tokenResponse.close(); diff --git a/app/src/main/java/eu/stuifzand/micropub/auth/VerifyAuthenticationTask.java b/app/src/main/java/eu/stuifzand/micropub/auth/VerifyAuthenticationTask.java index 30adc57..e54d377 100644 --- a/app/src/main/java/eu/stuifzand/micropub/auth/VerifyAuthenticationTask.java +++ b/app/src/main/java/eu/stuifzand/micropub/auth/VerifyAuthenticationTask.java @@ -6,7 +6,9 @@ import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; +import com.google.gson.JsonElement; import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; import com.google.gson.JsonParser; import java.io.IOException; @@ -25,15 +27,32 @@ public class VerifyAuthenticationTask extends AsyncTaskCategories (space separated) Post Syndicate to + Wrimini