diff options
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.java | 57 |
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; } |