diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5bba4d8..8521e95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -20,7 +20,7 @@ android:hardwareAccelerated="true" tools:targetApi="31"> diff --git a/app/src/main/java/org/sifacai/vlcjellyfin/CollectionActivity2.java b/app/src/main/java/org/sifacai/vlcjellyfin/CollectionActivity2.java index 150f279..bfdafde 100644 --- a/app/src/main/java/org/sifacai/vlcjellyfin/CollectionActivity2.java +++ b/app/src/main/java/org/sifacai/vlcjellyfin/CollectionActivity2.java @@ -74,7 +74,7 @@ public class CollectionActivity2 extends BaseActivity{ fillItems(); setLoadMore(); } - }); + },null); } /** @@ -93,7 +93,7 @@ public class CollectionActivity2 extends BaseActivity{ setTitleTip(); mGridContiner.finishLoadMore(); } - }); + },null); } private void setLoadMore(){ diff --git a/app/src/main/java/org/sifacai/vlcjellyfin/Config.java b/app/src/main/java/org/sifacai/vlcjellyfin/Config.java index 98d7f97..964f551 100644 --- a/app/src/main/java/org/sifacai/vlcjellyfin/Config.java +++ b/app/src/main/java/org/sifacai/vlcjellyfin/Config.java @@ -66,7 +66,7 @@ public class Config { */ public void getConfigFromSP() { SharedPreferences sp = context.getSharedPreferences("Jellyfin", context.MODE_PRIVATE); - this.JellyfinUrl = sp.getString("url", ""); + this.JellyfinUrl = sp.getString("url", "http://"); this.UserName = sp.getString("username", ""); this.PassWord = sp.getString("password", ""); this.SortBy = sp.getString("sortby","DateCreated"); diff --git a/app/src/main/java/org/sifacai/vlcjellyfin/HomeActivity.java b/app/src/main/java/org/sifacai/vlcjellyfin/HomeActivity.java index 306f6e3..4b52caf 100644 --- a/app/src/main/java/org/sifacai/vlcjellyfin/HomeActivity.java +++ b/app/src/main/java/org/sifacai/vlcjellyfin/HomeActivity.java @@ -53,12 +53,19 @@ public class HomeActivity extends BaseActivity{ showLoginDialog(); } } - },false); + },null,false); }else{ ShowToask("服务器地址不正确!"); showLoginDialog(); } } + },new JfClient.JJCallBack(){ + @Override + public void onError(String str) { + dismissLoadingDialog(); + ShowToask("服务器连接失败!"); + showLoginDialog(); + } }); }else{ initView(); @@ -108,11 +115,17 @@ public class HomeActivity extends BaseActivity{ ShowToask("用户名密码不正确!"); } } - },saveBox.isChecked()); + },null,saveBox.isChecked()); }else{ ShowToask("服务器地址不正确!"); } } + },new JfClient.JJCallBack(){ + @Override + public void onError(String str) { + dismissLoadingDialog(); + ShowToask("服务器地址不正确!"); + } }); } }); @@ -134,17 +147,17 @@ public class HomeActivity extends BaseActivity{ public void onSuccess(JsonArray latests) { addRowTvRecyclerView("新的 " + name,latests,false); } - }); + },null); } dismissLoadingDialog(); } - }); + },null); JfClient.GetResume(new JfClient.JJCallBack(){ @Override public void onSuccess(JsonArray resumes) { addRowTvRecyclerView("最近播放",resumes,false); } - }); + },null); } diff --git a/app/src/main/java/org/sifacai/vlcjellyfin/JfClient.java b/app/src/main/java/org/sifacai/vlcjellyfin/JfClient.java index 543f5ff..4a74f71 100644 --- a/app/src/main/java/org/sifacai/vlcjellyfin/JfClient.java +++ b/app/src/main/java/org/sifacai/vlcjellyfin/JfClient.java @@ -75,7 +75,7 @@ public class JfClient { public void onSuccess(String str) { //回放报告 } - }); + },null); } /** @@ -113,7 +113,7 @@ public class JfClient { * @param itemid * @param cb */ - public static void GetAddPart(String itemid,JJCallBack cb){ + public static void GetAddPart(String itemid,JJCallBack cb,JJCallBack errcb){ String AddPartUrl = "/Videos/" + itemid + "/AdditionalParts?userId=" + UserId; SendGet(AddPartUrl,new JJCallBack(){ @Override @@ -124,7 +124,7 @@ public class JfClient { cb.onSuccess(items); } } - }); + },errcb); } /** @@ -133,7 +133,7 @@ public class JfClient { * @param seasonId 季ID * @param cb */ - public static void GetEpisodes(String seriesId, String seasonId, JJCallBack cb) { + public static void GetEpisodes(String seriesId, String seasonId, JJCallBack cb,JJCallBack errcb) { String EpisodesUrl = config.getJellyfinUrl() + "/Shows/" + seriesId + "/Episodes?seasonId=" + seasonId; EpisodesUrl += "&userId=" + UserId; EpisodesUrl += "&Fields=ItemCounts,PrimaryImageAspectRatio,BasicSyncInfo,CanDelete,MediaSourceCount,Overview"; @@ -147,7 +147,7 @@ public class JfClient { cb.onSuccess(items); } } - }); + },errcb); } @@ -157,7 +157,7 @@ public class JfClient { * @param seriesId 剧ID * @param cb */ - public static void GetSeasons(String seriesId, JJCallBack cb) { + public static void GetSeasons(String seriesId, JJCallBack cb,JJCallBack errcb) { String SeasonsUrl = config.getJellyfinUrl() + "/Shows/" + seriesId + "/Seasons?userId=" + UserId; SeasonsUrl += "&Fields=ItemCounts,PrimaryImageAspectRatio,BasicSyncInfo,MediaSourceCount"; @@ -170,7 +170,7 @@ public class JfClient { cb.onSuccess(items); } } - }); + },errcb); } /** @@ -184,7 +184,7 @@ public class JfClient { * @param page 页 * @param cb */ - public static void GetCollection(String parentId, String type, String sortBy, String sortOrder, int limit, int page, JJCallBack cb) { + public static void GetCollection(String parentId, String type, String sortBy, String sortOrder, int limit, int page, JJCallBack cb,JJCallBack errcb) { String itemsUrl = config.getJellyfinUrl() + "/Users/" + UserId + "/Items?ParentId=" + parentId + "&Limit=" + limit; itemsUrl += "&Recursive=true&Fields=PrimaryImageAspectRatio,BasicSyncInfo,Seasons,Episodes&ImageTypeLimit=1"; itemsUrl += "&EnableImageTypes=Primary,Backdrop,Banner,Thumb"; @@ -206,7 +206,7 @@ public class JfClient { JsonObject items = strToGson(str, JsonObject.class); cb.onSuccess(items); } - }); + },errcb); } /** @@ -215,7 +215,7 @@ public class JfClient { * @param parentId * @param cb */ - public static void GetLatest(String parentId, JJCallBack cb) { + public static void GetLatest(String parentId, JJCallBack cb,JJCallBack errcb) { String lastestUrl = config.getJellyfinUrl() + "/Users/" + UserId + "/Items/Latest?"; lastestUrl += "Limit=16&Fields=PrimaryImageAspectRatio%2CBasicSyncInfo%2CPath"; lastestUrl += "&ImageTypeLimit=1&EnableImageTypes=Primary,Backdrop,Thumb"; @@ -229,7 +229,7 @@ public class JfClient { cb.onSuccess(latestObj); } } - }); + },errcb); } /** @@ -237,7 +237,7 @@ public class JfClient { * * @param cb */ - public static void GetResume(JJCallBack cb) { + public static void GetResume(JJCallBack cb,JJCallBack err) { String resumeUrl = config.getJellyfinUrl() + "/Users/" + UserId + "/Items/Resume?"; resumeUrl += "Limit=12&Recursive=true&Fields=PrimaryImageAspectRatio,BasicSyncInfo"; resumeUrl += "&ImageTypeLimit=1&EnableImageTypes=Primary,Backdrop,Thumb"; @@ -252,7 +252,7 @@ public class JfClient { cb.onSuccess(resumes); } } - }); + },err); } /** @@ -260,7 +260,7 @@ public class JfClient { * * @param cb */ - public static void GetViews(JJCallBack cb) { + public static void GetViews(JJCallBack cb,JJCallBack err) { String viewsUrl = config.getJellyfinUrl() + "/Users/" + UserId + "/Views"; SendGet(viewsUrl, new JJCallBack() { @Override @@ -271,7 +271,7 @@ public class JfClient { cb.onSuccess(views); } } - }); + },err); } /** @@ -280,7 +280,7 @@ public class JfClient { * @param itemid * @param cb */ - public static void GetItemInfo(String itemid, JJCallBack cb) { + public static void GetItemInfo(String itemid, JJCallBack cb,JJCallBack err) { String url = config.getJellyfinUrl() + "/Users/" + UserId + "/Items/" + itemid; SendGet(url, new JJCallBack() { @Override @@ -290,7 +290,7 @@ public class JfClient { cb.onSuccess(item); } } - }); + },err); } /** @@ -300,7 +300,7 @@ public class JfClient { * @param password * @param cb */ - public static void AuthenticateByName(String username, String password, JJCallBack cb, boolean saveUser) { + public static void AuthenticateByName(String username, String password, JJCallBack cb,JJCallBack err, boolean saveUser) { String url = config.getJellyfinUrl() + "/Users/authenticatebyname"; String reqjson = "{\"Username\":\"" + username + "\",\"Pw\":\"" + password + "\"}"; SendPost(url, reqjson, new JJCallBack() { @@ -326,7 +326,7 @@ public class JfClient { cb.onSuccess(false); } } - }); + },err); } /** @@ -334,7 +334,7 @@ public class JfClient { * * @param cb */ - public static void GetUsers(JJCallBack cb) { + public static void GetUsers(JJCallBack cb,JJCallBack err) { String url = config.getJellyfinUrl() + "/users/public"; SendGet(url, new JJCallBack() { @Override @@ -342,7 +342,7 @@ public class JfClient { JsonArray users = strToGson(str, JsonArray.class); cb.onSuccess(users); } - }); + },err); } /** @@ -351,7 +351,7 @@ public class JfClient { * @param url * @param cb */ - public static void VerityServerUrl(String url, JJCallBack cb) { + public static void VerityServerUrl(String url, JJCallBack cb,JJCallBack err) { if (url.length() > 0) { if (url.startsWith("http://") || url.startsWith("https://")) { @@ -368,7 +368,7 @@ public class JfClient { cb.onSuccess(true); } } - }); + },err); } }else{ @@ -396,7 +396,7 @@ public class JfClient { * @param url * @param cb */ - public static void SendGet(String url, JJCallBack cb) { + public static void SendGet(String url, JJCallBack cb,JJCallBack errcb) { OkGo.get(url).headers(headers).execute(new AbsCallback() { @Override public String convertResponse(okhttp3.Response response) throws IOException { @@ -414,7 +414,9 @@ public class JfClient { @Override public void onError(Response response) { - cb.onSuccess(""); + if(errcb != null){ + errcb.onError(response.body()); + } } }); } @@ -426,7 +428,7 @@ public class JfClient { * @param jsonStr * @param cb */ - public static void SendPost(String url, String jsonStr, JJCallBack cb) { + public static void SendPost(String url, String jsonStr, JJCallBack cb,JJCallBack errcb) { OkGo.post(url).headers(headers).upJson(jsonStr).execute(new AbsCallback() { @Override public String convertResponse(okhttp3.Response response) throws Throwable { @@ -444,7 +446,9 @@ public class JfClient { @Override public void onError(Response response) { - cb.onSuccess(""); + if(errcb != null){ + errcb.onError(response.body()); + } } }); } @@ -513,6 +517,11 @@ public class JfClient { public void onSuccess(JsonArray jsonArray) { } + + @Override + public void onError(String str) { + + } } public interface JCallBack { @@ -523,5 +532,7 @@ public class JfClient { void onSuccess(JsonObject jsonObject); void onSuccess(JsonArray jsonArray); + + void onError(String str); } }