From 582b651d79fd66bb5cc16a5a2b1fa788ba3b76ce Mon Sep 17 00:00:00 2001 From: Austin Huang Date: Sat, 1 Aug 2020 12:41:00 -0400 Subject: [PATCH] auto-cookie-detection --- .../main/java/awais/instagrabber/MainHelper.java | 4 ++-- .../java/awais/instagrabber/activities/Login.java | 14 +++++++++++++- .../java/awais/instagrabber/activities/Main.java | 11 ++++++++--- app/src/main/res/drawable-anydpi/ic_info.xml | 11 +++++++++++ app/src/main/res/drawable-hdpi/ic_info.png | Bin 0 -> 451 bytes app/src/main/res/drawable-mdpi/ic_info.png | Bin 0 -> 253 bytes app/src/main/res/drawable-xhdpi/ic_info.png | Bin 0 -> 597 bytes app/src/main/res/drawable-xxhdpi/ic_info.png | Bin 0 -> 811 bytes app/src/main/res/values/strings.xml | 2 ++ 9 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 app/src/main/res/drawable-anydpi/ic_info.xml create mode 100644 app/src/main/res/drawable-hdpi/ic_info.png create mode 100644 app/src/main/res/drawable-mdpi/ic_info.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_info.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_info.png diff --git a/app/src/main/java/awais/instagrabber/MainHelper.java b/app/src/main/java/awais/instagrabber/MainHelper.java index 91d24340..501852c6 100755 --- a/app/src/main/java/awais/instagrabber/MainHelper.java +++ b/app/src/main/java/awais/instagrabber/MainHelper.java @@ -261,7 +261,7 @@ public final class MainHelper implements SwipeRefreshLayout.OnRefreshListener { private RecyclerLazyLoader feedLazyLoader, discoverLazyLoader; private DiscoverAdapter discoverAdapter; public SimpleExoPlayer currentFeedPlayer; // hack for remix drawer layout - final boolean isLoggedIn = !Utils.isEmpty(Utils.settingsHelper.getString(Constants.COOKIE)); + public final boolean isLoggedIn = !Utils.isEmpty(Utils.settingsHelper.getString(Constants.COOKIE)); public MainHelper(@NonNull final Main main) { stopCurrentExecutor(); @@ -624,6 +624,7 @@ public final class MainHelper implements SwipeRefreshLayout.OnRefreshListener { } main.mainBinding.appBarLayout.setExpanded(true, true); main.mainBinding.privatePage.setVisibility(View.GONE); + main.mainBinding.privatePage2.setTextSize(28); main.mainBinding.mainProfileImage.setImageBitmap(null); main.mainBinding.mainHashtagImage.setImageBitmap(null); main.mainBinding.mainLocationImage.setImageBitmap(null); @@ -928,7 +929,6 @@ public final class MainHelper implements SwipeRefreshLayout.OnRefreshListener { if (!profileModel.isReallyPrivate()) { main.mainBinding.mainFollowing.setClickable(true); main.mainBinding.mainFollowers.setClickable(true); - main.mainBinding.privatePage.setVisibility(View.GONE); if (isLoggedIn) { final View.OnClickListener followClickListener = v -> main.startActivity(new Intent(main, FollowViewer.class) diff --git a/app/src/main/java/awais/instagrabber/activities/Login.java b/app/src/main/java/awais/instagrabber/activities/Login.java index db825719..6d5b6e00 100755 --- a/app/src/main/java/awais/instagrabber/activities/Login.java +++ b/app/src/main/java/awais/instagrabber/activities/Login.java @@ -1,6 +1,7 @@ package awais.instagrabber.activities; import android.annotation.SuppressLint; +import android.content.Intent; import android.graphics.Bitmap; import android.os.Build; import android.os.Bundle; @@ -31,10 +32,19 @@ public final class Login extends BaseLanguageActivity implements View.OnClickLis @Override public void onPageFinished(final WebView view, final String url) { webViewUrl = url; + final String mainCookie = Utils.getCookie(url); + if (!mainCookie.contains("; ds_user_id=")) ready = true; + else if (mainCookie.contains("; ds_user_id=") && ready) { + Utils.setupCookies(mainCookie); + settingsHelper.putString(Constants.COOKIE, mainCookie); + Toast.makeText(getApplicationContext(), R.string.login_success_loading_cookies, Toast.LENGTH_SHORT).show(); + finish(); + } } }; private final WebChromeClient webChromeClient = new WebChromeClient(); private String webViewUrl, defaultUserAgent; + private boolean ready = false; private ActivityLoginBinding loginBinding; @Override @@ -62,7 +72,9 @@ public final class Login extends BaseLanguageActivity implements View.OnClickLis Utils.setupCookies(mainCookie); settingsHelper.putString(Constants.COOKIE, mainCookie); Toast.makeText(this, R.string.login_success_loading_cookies, Toast.LENGTH_SHORT).show(); - finish(); + Intent intent = new Intent(getApplicationContext(), Main.class); + intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(intent); } } } diff --git a/app/src/main/java/awais/instagrabber/activities/Main.java b/app/src/main/java/awais/instagrabber/activities/Main.java index 1f16240c..228725f0 100755 --- a/app/src/main/java/awais/instagrabber/activities/Main.java +++ b/app/src/main/java/awais/instagrabber/activities/Main.java @@ -230,8 +230,13 @@ public final class Main extends BaseLanguageActivity { mainBinding.mainLocationImage.setEnabled(false); final boolean isQueryNull = userQuery == null; - if (isQueryNull) allItems.clear(); - if (BuildConfig.DEBUG && isQueryNull) userQuery = "@austinhuang.me"; + if (isQueryNull) { + allItems.clear(); + mainBinding.privatePage1.setImageResource(R.drawable.ic_info); + mainBinding.privatePage2.setTextSize(20); + mainBinding.privatePage2.setText(mainHelper.isLoggedIn ? R.string.no_acc_logged_in : R.string.no_acc); + mainBinding.privatePage.setVisibility(View.VISIBLE); + } if (!mainBinding.swipeRefreshLayout.isRefreshing() && userQuery != null) mainHelper.onRefresh(); mainHelper.onIntent(getIntent()); @@ -327,7 +332,7 @@ public final class Main extends BaseLanguageActivity { searchView.setQueryHint(getResources().getString(R.string.action_search)); searchView.setSuggestionsAdapter(suggestionAdapter); searchView.setOnSearchClickListener(v -> { - searchView.setQuery((cookieModel != null && userQuery.equals("@"+cookieModel.getUsername())) ? "" : userQuery, false); + searchView.setQuery((cookieModel != null && userQuery != null && userQuery.equals("@"+cookieModel.getUsername())) ? "" : userQuery, false); menu.findItem(R.id.action_about).setVisible(false); menu.findItem(R.id.action_settings).setVisible(false); menu.findItem(R.id.action_dms).setVisible(false); diff --git a/app/src/main/res/drawable-anydpi/ic_info.xml b/app/src/main/res/drawable-anydpi/ic_info.xml new file mode 100644 index 00000000..28e2af78 --- /dev/null +++ b/app/src/main/res/drawable-anydpi/ic_info.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/drawable-hdpi/ic_info.png b/app/src/main/res/drawable-hdpi/ic_info.png new file mode 100644 index 0000000000000000000000000000000000000000..884ee57b65e25d054c6b3f5074b9b901ee5e8d20 GIT binary patch literal 451 zcmV;!0X+VRP)VU4dCs$sROOxwE`9aTzRJqJl zek`s)dsf1NDQgJ}*;yrQtjMRFwbc~);W=(L+mT~XA2|l~W5*yfGmAbbhHUXTB>-|u t#){yw!THOEfhS6T+2FEYHhkMs+AsX#k@U5-aOVI3002ovPDHLkV1mgD$3_4E literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_info.png b/app/src/main/res/drawable-mdpi/ic_info.png new file mode 100644 index 0000000000000000000000000000000000000000..40f848258741713d6031f9d35b4cf203a82e9726 GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjM?75|Ln>}1CrErdaOKJst`6az z-rj59y121D{RIh;%qAwZz?TlD==Z6(-hz9;3d zW1GOjdy<~D76%g?gLJ%``co%X^Xl;TYl_rXrlk_|9WlrP0z#x5eIp zj-LIqP)qi4Uo)tjBt+UEALP>#eZfzr9#;CFHXYIdKS7M6#~ph+`+u#(p^* z_OXwBn2e$*&ShDCW?A-d(&c&nGZlCS|ATkn-BlRv3_3YuzTDq$YVe%E9GrVfVffK4 ze%Bf;3FrcyOF`x879FgNpU42ZV;g^;*~zDq%Kg4faSp%nSq1ORokkSMKmZC@9>FjT z1Q3ESXB2ckOd%y1?~G_d7D7iF$%$yN!CgOFreN+g-1F8VV5#wajEn*46m&CAT)mH% zW*gY0n0XtWpeHeSZ5Rg~4Q%LK4V;2A6YK;Ruo@k{4xkea1KpEGLCZkrxRe8!wny)P zrnL>^Y%K&s9KcPiXzk>U!Nuy7zez+NgA{-8=}%aqKZz~1&!j4$1GRcHnP%jY$^lrL zHbv^-^DP-dgIJ2kMHWt~=j|NW9E6yP@RG^_CW!mR(x}l1=+mgxhs?+UuMe3?DG};` zcPX*?VvZ}PeY&F1a+-F7+H!i^4b2K$N43s0 z;X?;&Vv8e;gNZHagYpu*&-ZB zLFsjTR!c;&Ic)w5Y>5^R5hRS`UT_ddSza-ipOm=V*Dn jf~r?@&AN|$yutVdLwLCTJNKZR00000NkvXXu0mjft9=hI literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_info.png b/app/src/main/res/drawable-xxhdpi/ic_info.png new file mode 100644 index 0000000000000000000000000000000000000000..4c9ddff5ac6c696ceddff5ed0a748b36a7cc4773 GIT binary patch literal 811 zcmV+`1JwM9P)jA&PHMj@vg=hXPAY!AX*ysZ`yamE_NYG%e zGJ9aehH9~qmoF$9uwd>wS6~JzVD_Xc3!p&kDJ8}PRoYk0sm(;*{ zI;zAhp6SJCq&l8XDTZ7b^xUlqw+Y2N~+Opx#l~X%GrVg@eD`- zCZjTJX!hc#BtWtS2OAg#P;GJ`nZS`!Qw6kvl}Va_=TOYF2C3;|=)IJt-oRTM!j)^| zkOVwxXW;Qnc0#&1Ck1dUL7GS;To)mOXeSuB_Q4Jl0ydpN_B|2R+z6glXSi!j=@~Sq zQ6U@vIzWqe)4kx5OAo|3NNbP)WZ`vdGF`?{tq=f7Rhvm{r}SK;(nAf9Jmf~BYNgM_ z57mn&rmLg|$RI@zbmN>-%;Osyc^PX;&lLfn3RO~7-U~#v$dojBq#Dhz<)~gJk9^4C zsB{+7dqn^U@6a{TbDb+d8nZDR0qCQc>_osgsheNz>7)vJlVv*FwHP1JuR^;#@H^W>^M1gg&j&re7jJA^Fpy zkbI0)Z9m#{-#|+xb}ItRY13U41)KvQEp19D%`CQUSF#^Ae*c(Fzr;>9;I%aCs@kEJ z=3i-iC&zZEwn&MVote successful! You have already voted! This Account is Private + You can log in via Settings on the bottom-right corner. Or, you can view public accounts without login! + You can swipe left/right for explore/feed, or search something below! This Account has No Posts No Such Posts! Current version: v%s