summaryrefslogtreecommitdiffstats
path: root/app/src/main/java/app/fedilab/android/activities/LoginActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/app/fedilab/android/activities/LoginActivity.java')
-rw-r--r--app/src/main/java/app/fedilab/android/activities/LoginActivity.java57
1 files changed, 44 insertions, 13 deletions
diff --git a/app/src/main/java/app/fedilab/android/activities/LoginActivity.java b/app/src/main/java/app/fedilab/android/activities/LoginActivity.java
index e5db8ece8..4caf3b5c1 100644
--- a/app/src/main/java/app/fedilab/android/activities/LoginActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/LoginActivity.java
@@ -27,16 +27,18 @@ import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
-import android.support.design.widget.TextInputLayout;
-import android.support.v4.app.ActivityCompat;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.widget.Toolbar;
+import com.google.android.material.textfield.TextInputLayout;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.widget.Toolbar;
import android.text.Editable;
import android.text.SpannableString;
+import android.text.Spanned;
import android.text.TextWatcher;
import android.text.method.LinkMovementMethod;
+import android.text.style.ForegroundColorSpan;
import android.text.style.UnderlineSpan;
import android.text.util.Linkify;
import android.view.LayoutInflater;
@@ -62,6 +64,7 @@ import com.jaredrummler.materialspinner.MaterialSpinner;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
+import org.w3c.dom.Text;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
@@ -111,12 +114,14 @@ public class LoginActivity extends BaseActivity {
private TextView instance_chosen;
private ImageView info_instance;
private final int PICK_IMPORT = 5557;
+ public static boolean admin;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle b = getIntent().getExtras();
socialNetwork = UpdateAccountInfoAsyncTask.SOCIAL.MASTODON;
+ admin = false;
if(b != null) {
autofilledInstance = b.getString("instance", null);
social = b.getString("social", null);
@@ -133,6 +138,7 @@ public class LoginActivity extends BaseActivity {
break;
}
}
+ admin = b.getBoolean("admin", false);
}
if( getIntent() != null && getIntent().getData() != null && getIntent().getData().toString().contains("mastalab://backtomastalab?code=")){
@@ -213,6 +219,25 @@ public class LoginActivity extends BaseActivity {
changeDrawableColor(getApplicationContext(), R.drawable.mastodon_icon, R.color.mastodonC3);
}
+ TextView create_an_account_message = findViewById(R.id.create_an_account);
+ SpannableString content_create = new SpannableString(getString(R.string.join_mastodon));
+ content_create.setSpan(new UnderlineSpan(), 0, content_create.length(), 0);
+ if( theme == Helper.THEME_DARK)
+ content_create.setSpan(new ForegroundColorSpan(ContextCompat.getColor(LoginActivity.this, R.color.dark_link_toot)), 0, content_create.length(),
+ Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
+ else if( theme == Helper.THEME_BLACK)
+ content_create.setSpan(new ForegroundColorSpan(ContextCompat.getColor(LoginActivity.this, R.color.black_link_toot)), 0, content_create.length(),
+ Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
+ else if( theme == Helper.THEME_LIGHT)
+ content_create.setSpan(new ForegroundColorSpan(ContextCompat.getColor(LoginActivity.this, R.color.mastodonC4)), 0, content_create.length(),
+ Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
+ create_an_account_message.setText(content_create);
+ create_an_account_message.setOnClickListener(v -> {
+ Intent mainActivity = new Intent(LoginActivity.this, MastodonRegisterActivity.class);
+ startActivity(mainActivity);
+ });
+
+
login_instance = findViewById(R.id.login_instance);
login_uid = findViewById(R.id.login_uid);
login_passwd = findViewById(R.id.login_passwd);
@@ -273,10 +298,6 @@ public class LoginActivity extends BaseActivity {
return;
}
instance = login_instance.getText().toString().trim().toLowerCase();
- if(instance.endsWith(".gab.com") || instance.equals("gab.com") || instance.endsWith(".gab.ai") || instance.equals("gab.ai")){
- Toasty.error(LoginActivity.this,getString(R.string.client_error), Toast.LENGTH_LONG).show();
- return;
- }
connect_button.setEnabled(false);
new Thread(new Runnable(){
@Override
@@ -529,7 +550,11 @@ public class LoginActivity extends BaseActivity {
parameters.put(Helper.CLIENT_NAME, Helper.CLIENT_NAME_VALUE);
parameters.put(Helper.REDIRECT_URIS, client_id_for_webview?Helper.REDIRECT_CONTENT_WEB:Helper.REDIRECT_CONTENT);
if( socialNetwork != UpdateAccountInfoAsyncTask.SOCIAL.PEERTUBE) {
- parameters.put(Helper.SCOPES, Helper.OAUTH_SCOPES);
+ if( admin ) {
+ parameters.put(Helper.SCOPES, Helper.OAUTH_SCOPES_ADMIN);
+ }else{
+ parameters.put(Helper.SCOPES, Helper.OAUTH_SCOPES);
+ }
}else {
parameters.put(Helper.SCOPES, Helper.OAUTH_SCOPES_PEERTUBE);
}
@@ -857,8 +882,14 @@ public class LoginActivity extends BaseActivity {
String queryString = Helper.CLIENT_ID + "="+ clientId;
queryString += "&" + Helper.REDIRECT_URI + "="+ Uri.encode(Helper.REDIRECT_CONTENT_WEB);
queryString += "&" + Helper.RESPONSE_TYPE +"=code";
- if( socialNetwork != UpdateAccountInfoAsyncTask.SOCIAL.PIXELFED )
- queryString += "&" + Helper.SCOPE +"=" + Helper.OAUTH_SCOPES;
+ if( socialNetwork != UpdateAccountInfoAsyncTask.SOCIAL.PIXELFED ) {
+
+ if( admin ) {
+ queryString += "&" + Helper.SCOPE + "=" + Helper.OAUTH_SCOPES_ADMIN;
+ }else{
+ queryString += "&" + Helper.SCOPE + "=" + Helper.OAUTH_SCOPES;
+ }
+ }
return Helper.instanceWithProtocol(context, instance) + Helper.EP_AUTHORIZE + "?" + queryString;
}