From 2fbd7c359e3321de617b47ef4c5b77a4e732edf9 Mon Sep 17 00:00:00 2001 From: LoxiaLiSA Date: Mon, 12 Aug 2024 13:44:55 +0800 Subject: [PATCH 1/3] fix login --- .../java/ceui/lisa/activities/MainActivity.java | 3 ++- .../java/ceui/lisa/http/TokenInterceptor.java | 3 +++ .../java/ceui/pixiv/session/SessionManager.kt | 15 ++++++++++----- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/ceui/lisa/activities/MainActivity.java b/app/src/main/java/ceui/lisa/activities/MainActivity.java index c34e5dcdf..9384afbd9 100644 --- a/app/src/main/java/ceui/lisa/activities/MainActivity.java +++ b/app/src/main/java/ceui/lisa/activities/MainActivity.java @@ -44,6 +44,7 @@ import ceui.lisa.utils.Common; import ceui.lisa.utils.Dev; import ceui.lisa.utils.GlideUtil; +import ceui.lisa.utils.Local; import ceui.lisa.utils.Params; import ceui.lisa.utils.ReverseImage; import ceui.lisa.utils.ReverseWebviewCallback; @@ -220,7 +221,7 @@ public int getCount() { @Override protected void initData() { - if (SessionManager.INSTANCE.isLoggedIn()) { + if (SessionManager.INSTANCE.isLoggedIn() || (sUserModel != null && sUserModel.getUser() != null && sUserModel.getUser().isIs_login())) { if (Dev.isDev && false) { startActivity(new Intent(this, HomeActivity.class)); } else { diff --git a/app/src/main/java/ceui/lisa/http/TokenInterceptor.java b/app/src/main/java/ceui/lisa/http/TokenInterceptor.java index 93e2fa2fd..db2281519 100644 --- a/app/src/main/java/ceui/lisa/http/TokenInterceptor.java +++ b/app/src/main/java/ceui/lisa/http/TokenInterceptor.java @@ -10,6 +10,7 @@ import ceui.lisa.models.UserModel; import ceui.lisa.utils.Common; import ceui.lisa.utils.Local; +import ceui.pixiv.session.SessionManager; import okhttp3.Interceptor; import okhttp3.Request; import okhttp3.Response; @@ -60,6 +61,7 @@ private boolean isTokenExpired(Response response) { } else if(body.contains(TOKEN_ERROR_2)){ Shaft.sUserModel.getUser().setIs_login(false); Local.saveUser(Shaft.sUserModel); + SessionManager.INSTANCE.updateSession(null); Common.showToast(R.string.string_340); Common.restart(); Common.showLog("isTokenExpired 111"); @@ -99,6 +101,7 @@ private synchronized String getNewToken(String tokenForThisRequest) throws IOExc newUser.getUser().setIs_login(true); } Local.saveUser(newUser); + SessionManager.INSTANCE.updateSession(newUser); Common.showLog("getNewToken 获取到了最新的 token:" + newUser.getAccess_token()); return newUser.getAccess_token(); } else { diff --git a/app/src/main/java/ceui/pixiv/session/SessionManager.kt b/app/src/main/java/ceui/pixiv/session/SessionManager.kt index 5061a49fb..9558fdd30 100644 --- a/app/src/main/java/ceui/pixiv/session/SessionManager.kt +++ b/app/src/main/java/ceui/pixiv/session/SessionManager.kt @@ -52,11 +52,16 @@ object SessionManager { } } - fun updateSession(userModel: UserModel) { - val javaJson = gson.toJson(userModel) - val accountResponse = gson.fromJson(javaJson, AccountResponse::class.java) - prefStore.putString(LoggedInUserJsonKey, gson.toJson(accountResponse)) - _loggedInAccount.value = accountResponse + fun updateSession(userModel: UserModel?) { + if (userModel == null) { + prefStore.putString(LoggedInUserJsonKey, "") + _loggedInAccount.value = AccountResponse() + } else { + val javaJson = gson.toJson(userModel) + val accountResponse = gson.fromJson(javaJson, AccountResponse::class.java) + prefStore.putString(LoggedInUserJsonKey, gson.toJson(accountResponse)) + _loggedInAccount.value = accountResponse + } } From a10871d68055caaec25807457ce4a0a6fa9eb026 Mon Sep 17 00:00:00 2001 From: LoxiaLiSA Date: Mon, 12 Aug 2024 13:50:51 +0800 Subject: [PATCH 2/3] fix compile error --- .../main/java/ceui/lisa/core/RemoteRepo.java | 26 ++-- .../ceui/lisa/fragments/NetListFragment.java | 144 +++++++++--------- .../java/ceui/lisa/repo/RankIllustRepo.kt | 16 +- 3 files changed, 93 insertions(+), 93 deletions(-) diff --git a/app/src/main/java/ceui/lisa/core/RemoteRepo.java b/app/src/main/java/ceui/lisa/core/RemoteRepo.java index ed2320de0..69760477a 100644 --- a/app/src/main/java/ceui/lisa/core/RemoteRepo.java +++ b/app/src/main/java/ceui/lisa/core/RemoteRepo.java @@ -44,10 +44,10 @@ public RemoteRepo() { * */ public abstract Observable initApi(); - /** - * Early development,it only returns JSON Array now - * */ - public abstract Observable initLofterApi(); +// /** +// * Early development,it only returns JSON Array now +// * */ +// public abstract Observable initLofterApi(); public abstract Observable initNextApi(); @@ -65,15 +65,15 @@ public void getFirstData(NullCtrl nullCtrl) { } } - public void getLofterFirstData(NullCtrl nullCtrl) { - mApi = initLofterApi();//mApi contains the response data - if (mApi != null) { - mApi.subscribeOn(Schedulers.newThread()) - .map(mFunction) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(nullCtrl); - } - } +// public void getLofterFirstData(NullCtrl nullCtrl) { +// mApi = initLofterApi();//mApi contains the response data +// if (mApi != null) { +// mApi.subscribeOn(Schedulers.newThread()) +// .map(mFunction) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(nullCtrl); +// } +// } public void getNextData(NullCtrl nullCtrl) { mApi = initNextApi(); diff --git a/app/src/main/java/ceui/lisa/fragments/NetListFragment.java b/app/src/main/java/ceui/lisa/fragments/NetListFragment.java index 9b23cf399..dbb2cc3f9 100644 --- a/app/src/main/java/ceui/lisa/fragments/NetListFragment.java +++ b/app/src/main/java/ceui/lisa/fragments/NetListFragment.java @@ -59,78 +59,78 @@ public abstract class NetListFragment() { - /** - * The method is called when the response is successfully received - * - * @param response The response of previous request - *

- * For example: - *

- *

- * Request for the daily rank list,response is an ArrayList of IllustsBean - *

- */ - @Override - public void success(Response response) { - Common.showLog("trace 000"); - if (!isAdded()) { - return; - } - Common.showLog("trace 111"); - mResponse = response; - tryCatchResponse(mResponse); - List mResponseList = mResponse.getList(); - //Show the received data - if (!Common.isEmpty(mResponseList)) { - Common.showLog("trace 222 " + mAdapter.getItemCount()); - beforeFirstLoad(mResponseList); - int beforeLoadSize = getStartSize(); - mModel.load(mResponseList, true); - if (mRemoteRepo.hasEffectiveUserFollowStatus()) { - mModel.tidyAppViewModel(); - } - allItems = mModel.getContent();//Get all the critical information such as IllustBean list - int afterLoadSize = getStartSize(); - onFirstLoaded(mResponseList); - mRecyclerView.setVisibility(View.VISIBLE); - emptyRela.setVisibility(View.INVISIBLE); - mAdapter.notifyItemRangeInserted(beforeLoadSize, afterLoadSize - beforeLoadSize); - Common.showLog("trace 777 " + mAdapter.getItemCount() + " allItems.size():" + allItems.size() + " modelSize:" + mModel.getContent().size()); - } else { - Common.showLog("trace 333"); - mRecyclerView.setVisibility(View.INVISIBLE); - emptyRela.setVisibility(View.VISIBLE); - } - Common.showLog("trace 444"); - mRemoteRepo.setNextUrl(mResponse.getNextUrl()); - mAdapter.setNextUrl(mResponse.getNextUrl()); - if (!TextUtils.isEmpty(mResponse.getNextUrl())) { - Common.showLog("trace 555"); - mRefreshLayout.setRefreshFooter(new ClassicsFooter(mContext)); - } else { - Common.showLog("trace 666"); - mRefreshLayout.setRefreshFooter(new FalsifyFooter(mContext)); - } - } - - @Override - public void must(boolean isSuccess) { - mRefreshLayout.finishRefresh(isSuccess); - isLoading = false; - } - - @Override - public void onError(Throwable e) { - super.onError(e); - mRecyclerView.setVisibility(View.INVISIBLE); - emptyRela.setVisibility(View.VISIBLE); - } - }); - } +// //For debug usage: +// boolean debug = false; +// if(debug) { +// mRemoteRepo.getLofterFirstData(new NullCtrl() { +// /** +// * The method is called when the response is successfully received +// * +// * @param response The response of previous request +// *

+// * For example: +// *

+// *

+// * Request for the daily rank list,response is an ArrayList of IllustsBean +// *

+// */ +// @Override +// public void success(Response response) { +// Common.showLog("trace 000"); +// if (!isAdded()) { +// return; +// } +// Common.showLog("trace 111"); +// mResponse = response; +// tryCatchResponse(mResponse); +// List mResponseList = mResponse.getList(); +// //Show the received data +// if (!Common.isEmpty(mResponseList)) { +// Common.showLog("trace 222 " + mAdapter.getItemCount()); +// beforeFirstLoad(mResponseList); +// int beforeLoadSize = getStartSize(); +// mModel.load(mResponseList, true); +// if (mRemoteRepo.hasEffectiveUserFollowStatus()) { +// mModel.tidyAppViewModel(); +// } +// allItems = mModel.getContent();//Get all the critical information such as IllustBean list +// int afterLoadSize = getStartSize(); +// onFirstLoaded(mResponseList); +// mRecyclerView.setVisibility(View.VISIBLE); +// emptyRela.setVisibility(View.INVISIBLE); +// mAdapter.notifyItemRangeInserted(beforeLoadSize, afterLoadSize - beforeLoadSize); +// Common.showLog("trace 777 " + mAdapter.getItemCount() + " allItems.size():" + allItems.size() + " modelSize:" + mModel.getContent().size()); +// } else { +// Common.showLog("trace 333"); +// mRecyclerView.setVisibility(View.INVISIBLE); +// emptyRela.setVisibility(View.VISIBLE); +// } +// Common.showLog("trace 444"); +// mRemoteRepo.setNextUrl(mResponse.getNextUrl()); +// mAdapter.setNextUrl(mResponse.getNextUrl()); +// if (!TextUtils.isEmpty(mResponse.getNextUrl())) { +// Common.showLog("trace 555"); +// mRefreshLayout.setRefreshFooter(new ClassicsFooter(mContext)); +// } else { +// Common.showLog("trace 666"); +// mRefreshLayout.setRefreshFooter(new FalsifyFooter(mContext)); +// } +// } +// +// @Override +// public void must(boolean isSuccess) { +// mRefreshLayout.finishRefresh(isSuccess); +// isLoading = false; +// } +// +// @Override +// public void onError(Throwable e) { +// super.onError(e); +// mRecyclerView.setVisibility(View.INVISIBLE); +// emptyRela.setVisibility(View.VISIBLE); +// } +// }); +// } if (!mRemoteRepo.localData()) { emptyRela.setVisibility(View.INVISIBLE); diff --git a/app/src/main/java/ceui/lisa/repo/RankIllustRepo.kt b/app/src/main/java/ceui/lisa/repo/RankIllustRepo.kt index 2fffb5bd1..fe8aee25e 100644 --- a/app/src/main/java/ceui/lisa/repo/RankIllustRepo.kt +++ b/app/src/main/java/ceui/lisa/repo/RankIllustRepo.kt @@ -22,14 +22,14 @@ class RankIllustRepo( //var debug = Retro.getLofterApi().getLofterRank(LOFTER_HEADER, LOFTER_APICOOKIE) return Retro.getAppApi().getRank(token(), mode, date) } - - override fun initLofterApi(): Observable { - //for debug usage - var debug_value = Retro.getLofterApi().getLofterRank(LOFTER_HEADER, LOFTER_APICOOKIE) - Common.showLog("initLofterApi") - Common.showLog(debug_value) - return Retro.getLofterApi().getLofterRank(LOFTER_HEADER, LOFTER_APICOOKIE) - } +// +// override fun initLofterApi(): Observable { +// //for debug usage +// var debug_value = Retro.getLofterApi().getLofterRank(LOFTER_HEADER, LOFTER_APICOOKIE) +// Common.showLog("initLofterApi") +// Common.showLog(debug_value) +// return Retro.getLofterApi().getLofterRank(LOFTER_HEADER, LOFTER_APICOOKIE) +// } override fun initNextApi(): Observable { return Retro.getAppApi().getNextIllust(token(), nextUrl) From 1e218c2fb45163d5ae39e58abd4628b640995e62 Mon Sep 17 00:00:00 2001 From: LoxiaLiSA Date: Mon, 12 Aug 2024 14:04:23 +0800 Subject: [PATCH 3/3] fix compile error --- app/build.gradle | 2 +- app/src/main/java/ceui/lisa/http/TokenInterceptor.java | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index b63e5dbbd..969d9000e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,7 +15,7 @@ android { applicationId "ceui.lisa.pixiv" minSdkVersion 21 targetSdkVersion 34 - versionCode 292 + versionCode 296 versionName "4.1.3" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/java/ceui/lisa/http/TokenInterceptor.java b/app/src/main/java/ceui/lisa/http/TokenInterceptor.java index db2281519..014fc93fa 100644 --- a/app/src/main/java/ceui/lisa/http/TokenInterceptor.java +++ b/app/src/main/java/ceui/lisa/http/TokenInterceptor.java @@ -61,7 +61,6 @@ private boolean isTokenExpired(Response response) { } else if(body.contains(TOKEN_ERROR_2)){ Shaft.sUserModel.getUser().setIs_login(false); Local.saveUser(Shaft.sUserModel); - SessionManager.INSTANCE.updateSession(null); Common.showToast(R.string.string_340); Common.restart(); Common.showLog("isTokenExpired 111"); @@ -101,7 +100,6 @@ private synchronized String getNewToken(String tokenForThisRequest) throws IOExc newUser.getUser().setIs_login(true); } Local.saveUser(newUser); - SessionManager.INSTANCE.updateSession(newUser); Common.showLog("getNewToken 获取到了最新的 token:" + newUser.getAccess_token()); return newUser.getAccess_token(); } else {