diff --git a/app/build.gradle b/app/build.gradle index 9a921259..d0cdef07 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,8 +12,8 @@ android { applicationId 'org.nuclearfog.twidda' minSdkVersion 16 targetSdkVersion 31 - versionCode 50 - versionName '1.10.5' + versionCode 51 + versionName '1.10.6' // limiting language support for smaller APK size resConfigs 'en', 'de-rDE', 'zh-rCN' vectorDrawables.useSupportLibrary true diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/engine/TwitterEngine.java b/app/src/main/java/org/nuclearfog/twidda/backend/engine/TwitterEngine.java index b5bb51e6..826072c0 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/engine/TwitterEngine.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/engine/TwitterEngine.java @@ -175,7 +175,8 @@ public class TwitterEngine { public String request() throws EngineException { try { if (reqToken == null) { - reqToken = twitter.getOAuthRequestToken(); + // request token without redirecting to the callback url + reqToken = twitter.getOAuthRequestToken("oob"); } } catch (Exception err) { throw new EngineException(err); @@ -881,8 +882,12 @@ public class TwitterEngine { try { UsersResponse response = LikesExKt.getLikingUsers(twitter, tweetId, null, null, null); List users = response.getUsers(); + long[] ids = new long[users.size()]; + for (int i = 0 ; i < ids.length ; i++) + ids[i] = users.get(i).getId(); + // lookup users with Twitter4J for maximum compability UserList result = new UserList(cursor, 0); - result.addAll(convertUser2List(users)); + result.addAll(convertUserList(twitter.lookupUsers(ids))); return result; } catch (TwitterException err) { throw new EngineException(err); @@ -1316,24 +1321,6 @@ public class TwitterEngine { return result; } - /** - * convert {@link User2} list to user list - * - * @param users list of user from version 2 - * @return user list - */ - private List convertUser2List(List users) throws TwitterException { - long id = twitter.getId(); - ArrayList result = new ArrayList<>(); - result.ensureCapacity(users.size()); - for (User2 user : users) { - if (user.getPublicMetrics() != null) { - result.add(new User(user, user.getPublicMetrics(), id)); - } - } - return result; - } - /** * create paging for tweets * diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/model/User.java b/app/src/main/java/org/nuclearfog/twidda/backend/model/User.java index 2822d893..d4c19b2e 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/model/User.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/model/User.java @@ -5,7 +5,6 @@ import androidx.annotation.NonNull; import java.io.Serializable; import twitter4j.URLEntity; -import twitter4j.User2; /** * Container class for a twitter user @@ -82,15 +81,6 @@ public class User implements Serializable { isCurrentUser = twitterId == userID; } - - public User(User2 user, User2.PublicMetrics metrics, long id) { - this(user.getId(), user.getUsername(), user.getName(), user.getProfileImageUrl(), - user.getDescription(), user.getLocation(), id, user.getVerified(), - user.getProtected(), false, true, "", "", user.getCreatedAt().getTime(), - metrics.getFollowingCount(), metrics.getFollowersCount(), - metrics.getTweetCount(), metrics.getListedCount()); - } - /** * @param userID ID of the user * @param username username diff --git a/app/src/main/res/xml/licenses.xml b/app/src/main/res/xml/licenses.xml index 1c9b3fd4..41a68d9d 100644 --- a/app/src/main/res/xml/licenses.xml +++ b/app/src/main/res/xml/licenses.xml @@ -42,6 +42,27 @@ limitations under the License. + + Copyright 2020 takke + Licensed under the Apache License, + Version 2.0 (the "License"); + you may not use this file except + in compliance with the License. + You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 + Unless required by applicable law + or agreed to in writing, + software distributed under the License + is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS + OF ANY KIND, either express or implied. + See the License for the specific + language governing permissions and + limitations under the License. + +