aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/ml/docilealligator
diff options
context:
space:
mode:
authorAlex Ning <chineseperson5@gmail.com>2021-02-03 03:14:25 +0000
committerAlex Ning <chineseperson5@gmail.com>2021-02-03 03:14:25 +0000
commit4652b70b376d2a8589bed77ee0f2089eb36b233d (patch)
tree221acec4490fda32525adfe96595e373fe15637f /app/src/main/java/ml/docilealligator
parent6f64303df8c776cf187d3e8820b67c1901804815 (diff)
downloadinfinity-for-reddit-4652b70b376d2a8589bed77ee0f2089eb36b233d.tar
infinity-for-reddit-4652b70b376d2a8589bed77ee0f2089eb36b233d.tar.gz
infinity-for-reddit-4652b70b376d2a8589bed77ee0f2089eb36b233d.tar.bz2
infinity-for-reddit-4652b70b376d2a8589bed77ee0f2089eb36b233d.tar.lz
infinity-for-reddit-4652b70b376d2a8589bed77ee0f2089eb36b233d.tar.xz
infinity-for-reddit-4652b70b376d2a8589bed77ee0f2089eb36b233d.tar.zst
infinity-for-reddit-4652b70b376d2a8589bed77ee0f2089eb36b233d.zip
Add a FAB in LoginActivity to setDomStorageEnabled.
Diffstat (limited to 'app/src/main/java/ml/docilealligator')
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/LoginActivity.java43
1 files changed, 40 insertions, 3 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/LoginActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/LoginActivity.java
index 210a81c7..49455183 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/LoginActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/LoginActivity.java
@@ -10,6 +10,7 @@ import android.os.Bundle;
import android.util.Log;
import android.view.InflateException;
import android.view.MenuItem;
+import android.view.View;
import android.webkit.CookieManager;
import android.webkit.WebView;
import android.webkit.WebViewClient;
@@ -19,8 +20,11 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.widget.Toolbar;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
+import androidx.core.app.ActivityCompat;
import com.google.android.material.appbar.AppBarLayout;
+import com.google.android.material.dialog.MaterialAlertDialogBuilder;
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.r0adkll.slidr.Slidr;
import org.json.JSONException;
@@ -34,13 +38,13 @@ import javax.inject.Named;
import butterknife.BindView;
import butterknife.ButterKnife;
-import ml.docilealligator.infinityforreddit.apis.RedditAPI;
-import ml.docilealligator.infinityforreddit.asynctasks.ParseAndInsertNewAccountAsyncTask;
-import ml.docilealligator.infinityforreddit.customtheme.CustomThemeWrapper;
import ml.docilealligator.infinityforreddit.FetchMyInfo;
import ml.docilealligator.infinityforreddit.Infinity;
import ml.docilealligator.infinityforreddit.R;
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
+import ml.docilealligator.infinityforreddit.apis.RedditAPI;
+import ml.docilealligator.infinityforreddit.asynctasks.ParseAndInsertNewAccountAsyncTask;
+import ml.docilealligator.infinityforreddit.customtheme.CustomThemeWrapper;
import ml.docilealligator.infinityforreddit.utils.APIUtils;
import ml.docilealligator.infinityforreddit.utils.SharedPreferencesUtils;
import ml.docilealligator.infinityforreddit.utils.Utils;
@@ -51,6 +55,8 @@ import retrofit2.Retrofit;
public class LoginActivity extends BaseActivity {
+ private static final String ENABLE_DOM_STATE = "EDS";
+
@BindView(R.id.coordinator_layout_login_activity)
CoordinatorLayout coordinatorLayout;
@BindView(R.id.appbar_layout_login_activity)
@@ -61,6 +67,8 @@ public class LoginActivity extends BaseActivity {
TextView twoFAInfoTextView;
@BindView(R.id.webview_login_activity)
WebView webView;
+ @BindView(R.id.fab_login_activity)
+ FloatingActionButton fab;
@Inject
@Named("no_oauth")
Retrofit mRetrofit;
@@ -78,6 +86,7 @@ public class LoginActivity extends BaseActivity {
@Inject
CustomThemeWrapper mCustomThemeWrapper;
private String authCode;
+ private boolean enableDom = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -108,7 +117,28 @@ public class LoginActivity extends BaseActivity {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ if (savedInstanceState != null) {
+ enableDom = savedInstanceState.getBoolean(ENABLE_DOM_STATE);
+ }
+
+ fab.setOnClickListener(view -> {
+ new MaterialAlertDialogBuilder(this, R.style.MaterialAlertDialogTheme)
+ .setTitle(R.string.have_trouble_login_title)
+ .setMessage(R.string.have_trouble_login_message)
+ .setPositiveButton(R.string.yes, (dialogInterface, i) -> {
+ enableDom = !enableDom;
+ ActivityCompat.recreate(this);
+ })
+ .setNegativeButton(R.string.no, null)
+ .show();
+ });
+
+ if (enableDom) {
+ twoFAInfoTextView.setVisibility(View.GONE);
+ }
+
webView.getSettings().setJavaScriptEnabled(true);
+ webView.getSettings().setDomStorageEnabled(enableDom);
Uri baseUri = Uri.parse(APIUtils.OAUTH_URL);
Uri.Builder uriBuilder = baseUri.buildUpon();
@@ -228,6 +258,12 @@ public class LoginActivity extends BaseActivity {
}
@Override
+ protected void onSaveInstanceState(@NonNull Bundle outState) {
+ super.onSaveInstanceState(outState);
+ outState.putBoolean(ENABLE_DOM_STATE, enableDom);
+ }
+
+ @Override
public SharedPreferences getDefaultSharedPreferences() {
return mSharedPreferences;
}
@@ -244,6 +280,7 @@ public class LoginActivity extends BaseActivity {
twoFAInfoTextView.setTextColor(mCustomThemeWrapper.getPrimaryTextColor());
Drawable infoDrawable = Utils.getTintedDrawable(this, R.drawable.ic_info_preference_24dp, mCustomThemeWrapper.getPrimaryIconColor());
twoFAInfoTextView.setCompoundDrawablesWithIntrinsicBounds(infoDrawable, null, null, null);
+ applyFABTheme(fab);
}
@Override