mirror of
https://github.com/KokaKiwi/BarInsta
synced 2024-11-25 08:07:29 +00:00
v16.9 part whatever
This commit is contained in:
parent
86d94d3c97
commit
2f30eec0a3
@ -870,7 +870,7 @@ public final class MainHelper implements SwipeRefreshLayout.OnRefreshListener {
|
||||
main.mainBinding.mainFullName.setSelected(true);
|
||||
main.mainBinding.mainBiography.setEnabled(true);
|
||||
|
||||
if (!profileModel.isPrivate()) {
|
||||
if (!profileModel.isReallyPrivate()) {
|
||||
main.mainBinding.mainFollowing.setClickable(true);
|
||||
main.mainBinding.mainFollowers.setClickable(true);
|
||||
main.mainBinding.privatePage.setVisibility(View.GONE);
|
||||
|
@ -42,7 +42,7 @@ import awais.instagrabber.utils.Utils;
|
||||
public final class DirectMessagesUserInbox extends AppCompatActivity {
|
||||
private DirectItemModel directItemModel;
|
||||
private final ProfileModel myProfileHolder =
|
||||
new ProfileModel(false, false, null, null, null, null, null, null, null, 0, 0, 0, false, false, false, false);
|
||||
new ProfileModel(false, false, false, null, null, null, null, null, null, null, 0, 0, 0, false, false, false, false);
|
||||
private final ArrayList<ProfileModel> users = new ArrayList<>();
|
||||
private final ArrayList<DirectItemModel> directItemModels = new ArrayList<>();
|
||||
private final FetchListener<InboxThreadModel> fetchListener = new FetchListener<InboxThreadModel>() {
|
||||
|
@ -317,7 +317,7 @@ public final class Main extends BaseLanguageActivity {
|
||||
searchView.setQueryHint(getResources().getString(R.string.action_search));
|
||||
searchView.setSuggestionsAdapter(suggestionAdapter);
|
||||
searchView.setOnSearchClickListener(v -> {
|
||||
searchView.setQuery(userQuery.equals(cookieModel.getUsername()) ? "" : userQuery, false);
|
||||
searchView.setQuery((cookieModel != 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);
|
||||
|
@ -139,11 +139,14 @@ public final class PostViewer extends BaseLanguageActivity {
|
||||
iconRes = R.drawable.ic_fullscreen_exit;
|
||||
topPanelRoot.setVisibility(View.GONE);
|
||||
viewerBinding.btnDownload.setVisibility(View.VISIBLE);
|
||||
viewerBinding.bottomPanel.tvPostDate.setVisibility(View.GONE);
|
||||
} else {
|
||||
containerLayoutParams.weight = (viewerBinding.mediaList.getVisibility() == View.VISIBLE) ? 1.35f : 1.9f;
|
||||
containerLayoutParams.weight += (Utils.isEmpty(settingsHelper.getString(Constants.COOKIE))) ? 0.3f : 0;
|
||||
iconRes = R.drawable.ic_fullscreen;
|
||||
topPanelRoot.setVisibility(View.VISIBLE);
|
||||
viewerBinding.btnDownload.setVisibility(View.GONE);
|
||||
viewerBinding.bottomPanel.tvPostDate.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
viewerBinding.ivToggleFullScreen.setImageResource(iconRes);
|
||||
@ -203,7 +206,19 @@ public final class PostViewer extends BaseLanguageActivity {
|
||||
resources = getResources();
|
||||
|
||||
final View viewStoryPost = findViewById(R.id.viewStoryPost);
|
||||
if (viewStoryPost != null) viewStoryPost.setVisibility(View.GONE);
|
||||
if (viewStoryPost != null) {
|
||||
viewStoryPost.setOnClickListener(new View.OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
if (profileModel.isPrivate())
|
||||
Toast.makeText(getApplicationContext(), R.string.share_private_post, Toast.LENGTH_LONG).show();
|
||||
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
|
||||
sharingIntent.setType("text/plain");
|
||||
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, "https://instagram.com/p/"+postShortCode);
|
||||
startActivity(Intent.createChooser(sharingIntent,
|
||||
(profileModel.isPrivate()) ? getString(R.string.share_private_post) : getString(R.string.share_public_post)));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
viewerBinding.topPanel.title.setMovementMethod(new LinkMovementMethod());
|
||||
viewerBinding.topPanel.title.setMentionClickListener((view, text, isHashtag) ->
|
||||
@ -218,7 +233,7 @@ public final class PostViewer extends BaseLanguageActivity {
|
||||
viewerBinding.postActions.setLayoutParams(new LinearLayout.LayoutParams(
|
||||
LinearLayout.LayoutParams.MATCH_PARENT, 0, 0
|
||||
));
|
||||
containerLayoutParams.weight = 2.2f;
|
||||
containerLayoutParams.weight = (containerLayoutParams.weight == 3.3f) ? 3.3f : 2.2f;
|
||||
viewerBinding.container.setLayoutParams(containerLayoutParams);
|
||||
}
|
||||
else {
|
||||
@ -339,6 +354,21 @@ public final class PostViewer extends BaseLanguageActivity {
|
||||
viewerBinding.mediaList.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
final View viewStoryPost = findViewById(R.id.viewStoryPost);
|
||||
if (viewStoryPost != null) {
|
||||
viewStoryPost.setOnClickListener(new View.OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
if (profileModel.isPrivate())
|
||||
Toast.makeText(getApplicationContext(), R.string.share_private_post, Toast.LENGTH_LONG).show();
|
||||
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
|
||||
sharingIntent.setType("text/plain");
|
||||
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, "https://instagram.com/p/"+postModel.getShortCode());
|
||||
startActivity(Intent.createChooser(sharingIntent,
|
||||
(profileModel.isPrivate()) ? getString(R.string.share_private_post) : getString(R.string.share_public_post)));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
viewerCaptionParent.setOnTouchListener(gestureTouchListener);
|
||||
viewerBinding.playerView.setOnTouchListener(gestureTouchListener);
|
||||
viewerBinding.imageViewer.setOnSingleFlingListener((e1, e2, velocityX, velocityY) -> {
|
||||
@ -560,10 +590,6 @@ public final class PostViewer extends BaseLanguageActivity {
|
||||
}
|
||||
lastSlidePos = slidePos;
|
||||
|
||||
containerLayoutParams.weight = (viewerBinding.mediaList.getVisibility() == View.VISIBLE) ? 1.35f : 1.9f;
|
||||
containerLayoutParams.weight += (Utils.isEmpty(settingsHelper.getString(Constants.COOKIE))) ? 0.3f : 0;
|
||||
viewerBinding.container.setLayoutParams(containerLayoutParams);
|
||||
|
||||
postCaption = viewerPostModel.getPostCaption();
|
||||
|
||||
if (Utils.hasMentions(postCaption)) {
|
||||
@ -588,12 +614,12 @@ public final class PostViewer extends BaseLanguageActivity {
|
||||
postModel.setLike(viewerPostModel.getLike());
|
||||
postModel.setBookmark(viewerPostModel.getBookmark());
|
||||
if (viewerPostModel.getLike() == true) {
|
||||
viewerBinding.btnLike.setText(resources.getString(R.string.unlike, postModel.getLikes()));
|
||||
viewerBinding.btnLike.setText(resources.getString(R.string.unlike, viewerPostModel.getLikes()));
|
||||
viewerBinding.btnLike.setBackgroundTintList(ColorStateList.valueOf(resources.getColor(
|
||||
R.color.btn_pink_background, null)));
|
||||
}
|
||||
else {
|
||||
viewerBinding.btnLike.setText(resources.getString(R.string.like, postModel.getLikes()));
|
||||
viewerBinding.btnLike.setText(resources.getString(R.string.like, viewerPostModel.getLikes()));
|
||||
viewerBinding.btnLike.setBackgroundTintList(ColorStateList.valueOf(resources.getColor(
|
||||
R.color.btn_lightpink_background, null)));
|
||||
}
|
||||
@ -610,7 +636,7 @@ public final class PostViewer extends BaseLanguageActivity {
|
||||
}
|
||||
|
||||
viewerBinding.bottomPanel.tvPostDate.setText(viewerPostModel.getPostDate());
|
||||
viewerBinding.bottomPanel.tvPostDate.setVisibility(View.VISIBLE);
|
||||
viewerBinding.bottomPanel.tvPostDate.setVisibility(containerLayoutParams.weight != 3.3f ? View.VISIBLE : View.GONE);
|
||||
viewerBinding.bottomPanel.tvPostDate.setSelected(true);
|
||||
|
||||
url = viewerPostModel.getDisplayUrl();
|
||||
@ -718,7 +744,7 @@ public final class PostViewer extends BaseLanguageActivity {
|
||||
if (urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
|
||||
ok = true;
|
||||
}
|
||||
else Toast.makeText(getApplicationContext(), R.string.downloader_unknown_error, Toast.LENGTH_SHORT);
|
||||
else Toast.makeText(getApplicationContext(), R.string.downloader_unknown_error, Toast.LENGTH_SHORT).show();
|
||||
urlConnection.disconnect();
|
||||
} catch (Throwable ex) {
|
||||
Log.e("austin_debug", action+": " + ex);
|
||||
@ -729,8 +755,8 @@ public final class PostViewer extends BaseLanguageActivity {
|
||||
@Override
|
||||
protected void onPostExecute(Void result) {
|
||||
if (ok == true && action == "likes") {
|
||||
viewerPostModel.setLike(!postModel.getLike());
|
||||
postModel.setManualLike(!postModel.getLike());
|
||||
postModel.setLike(!postModel.getLike());
|
||||
viewerPostModel.setManualLike(!postModel.getLike());
|
||||
refreshPost();
|
||||
}
|
||||
else if (ok == true && action == "save") {
|
||||
|
@ -46,7 +46,7 @@ import static awais.instagrabber.models.direct_messages.DirectItemModel.RavenExp
|
||||
public final class MessageItemsAdapter extends RecyclerView.Adapter<TextMessageViewHolder> {
|
||||
private static final int MESSAGE_INCOMING = 69, MESSAGE_OUTGOING = 420;
|
||||
private final ProfileModel myProfileHolder =
|
||||
new ProfileModel(false, false, null, null, null, null, null, null, null, 0, 0, 0, false, false, false, false);
|
||||
new ProfileModel(false, false, false, null, null, null, null, null, null, null, 0, 0, 0, false, false, false, false);
|
||||
private final ArrayList<DirectItemModel> directItemModels;
|
||||
private final ArrayList<ProfileModel> users;
|
||||
private final View.OnClickListener onClickListener;
|
||||
|
@ -109,8 +109,7 @@ public final class CommentsFetcher extends AsyncTask<Void, Void, CommentModel[]>
|
||||
|
||||
if (childComment != null) {
|
||||
final JSONObject owner = childComment.getJSONObject("owner");
|
||||
final ProfileModel profileModel = new ProfileModel(false,
|
||||
false,
|
||||
final ProfileModel profileModel = new ProfileModel(false, false, false,
|
||||
owner.getString(Constants.EXTRAS_ID),
|
||||
owner.getString(Constants.EXTRAS_USERNAME),
|
||||
null, null, null,
|
||||
@ -188,7 +187,7 @@ public final class CommentsFetcher extends AsyncTask<Void, Void, CommentModel[]>
|
||||
final JSONObject comment = comments.getJSONObject(i).getJSONObject("node");
|
||||
|
||||
final JSONObject owner = comment.getJSONObject("owner");
|
||||
final ProfileModel profileModel = new ProfileModel(false,
|
||||
final ProfileModel profileModel = new ProfileModel(false, false,
|
||||
owner.optBoolean("is_verified"),
|
||||
owner.getString(Constants.EXTRAS_ID),
|
||||
owner.getString(Constants.EXTRAS_USERNAME),
|
||||
@ -229,6 +228,7 @@ public final class CommentsFetcher extends AsyncTask<Void, Void, CommentModel[]>
|
||||
|
||||
tempJsonObject = childComment.getJSONObject("owner");
|
||||
final ProfileModel childProfileModel = new ProfileModel(false, false,
|
||||
tempJsonObject.optBoolean("is_verified"),
|
||||
tempJsonObject.getString(Constants.EXTRAS_ID),
|
||||
tempJsonObject.getString(Constants.EXTRAS_USERNAME),
|
||||
null, null, null,
|
||||
|
@ -98,6 +98,7 @@ public final class FeedFetcher extends AsyncTask<Void, Void, FeedModel[]> {
|
||||
if (feedItem.has("owner")) {
|
||||
final JSONObject owner = feedItem.getJSONObject("owner");
|
||||
profileModel = new ProfileModel(owner.optBoolean("is_private"),
|
||||
false, // if you can see it then you def follow
|
||||
owner.optBoolean("is_verified"),
|
||||
owner.getString(Constants.EXTRAS_ID),
|
||||
owner.getString(Constants.EXTRAS_USERNAME),
|
||||
@ -153,7 +154,8 @@ public final class FeedFetcher extends AsyncTask<Void, Void, FeedModel[]> {
|
||||
node.getString(Constants.EXTRAS_ID),
|
||||
isChildVideo ? node.getString("video_url") : Utils.getHighQualityImage(node),
|
||||
null, null, null,
|
||||
node.optLong("video_view_count", -1), -1, false, false);
|
||||
node.optLong("video_view_count", -1), -1, false, false,
|
||||
feedItem.getJSONObject("edge_media_preview_like").getLong("count"));
|
||||
|
||||
sliderItems[j].setSliderDisplayUrl(node.getString("display_url"));
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ public final class FeedStoriesFetcher extends AsyncTask<Void, Void, FeedStoryMod
|
||||
final JSONObject node = feedStoriesReel.getJSONObject(i).getJSONObject("node");
|
||||
|
||||
final JSONObject user = node.getJSONObject(node.has("user") ? "user" : "owner");
|
||||
final ProfileModel profileModel = new ProfileModel(false, false,
|
||||
final ProfileModel profileModel = new ProfileModel(false, false, false,
|
||||
user.getString("id"),
|
||||
user.getString("username"),
|
||||
null, null, null,
|
||||
|
@ -81,7 +81,6 @@ public final class PostFetcher extends AsyncTask<Void, Void, ViewerPostModel[]>
|
||||
endCursor = commentObject.optString("end_cursor");
|
||||
|
||||
if (mediaItemType != MediaItemType.MEDIA_TYPE_SLIDER) {
|
||||
Log.d("austin_debug", "m: "+media);
|
||||
final ViewerPostModel postModel = new ViewerPostModel(mediaItemType,
|
||||
media.getString(Constants.EXTRAS_ID),
|
||||
isVideo ? media.getString("video_url") : Utils.getHighQualityImage(media),
|
||||
@ -89,7 +88,8 @@ public final class PostFetcher extends AsyncTask<Void, Void, ViewerPostModel[]>
|
||||
Utils.isEmpty(postCaption) ? null : postCaption,
|
||||
username,
|
||||
isVideo && media.has("video_view_count") ? media.getLong("video_view_count") : -1,
|
||||
timestamp, media.getBoolean("viewer_has_liked"), media.getBoolean("viewer_has_saved"));
|
||||
timestamp, media.getBoolean("viewer_has_liked"), media.getBoolean("viewer_has_saved"),
|
||||
media.getJSONObject("edge_media_preview_like").getLong("count"));
|
||||
|
||||
postModel.setCommentsCount(commentsCount);
|
||||
postModel.setCommentsEndCursor(endCursor);
|
||||
@ -107,13 +107,14 @@ public final class PostFetcher extends AsyncTask<Void, Void, ViewerPostModel[]>
|
||||
final boolean isChildVideo = node.getBoolean("is_video");
|
||||
|
||||
postModels[i] = new ViewerPostModel(isChildVideo ? MediaItemType.MEDIA_TYPE_VIDEO : MediaItemType.MEDIA_TYPE_IMAGE,
|
||||
node.getString(Constants.EXTRAS_ID),
|
||||
media.getString(Constants.EXTRAS_ID),
|
||||
isChildVideo ? node.getString("video_url") : Utils.getHighQualityImage(node),
|
||||
node.getString(Constants.EXTRAS_SHORTCODE),
|
||||
postCaption,
|
||||
username,
|
||||
isChildVideo && node.has("video_view_count") ? node.getLong("video_view_count") : -1,
|
||||
timestamp, media.getBoolean("viewer_has_liked"), media.getBoolean("viewer_has_saved"));
|
||||
timestamp, media.getBoolean("viewer_has_liked"), media.getBoolean("viewer_has_saved"),
|
||||
media.getJSONObject("edge_media_preview_like").getLong("count"));
|
||||
postModels[i].setSliderDisplayUrl(node.getString("display_url"));
|
||||
|
||||
Utils.checkExistence(downloadDir, customDir, username, true, i, postModels[i]);
|
||||
|
@ -43,16 +43,18 @@ public final class ProfileFetcher extends AsyncTask<Void, Void, ProfileModel> {
|
||||
final JSONObject user = new JSONObject(Utils.readFromConnection(conn)).getJSONObject("graphql").getJSONObject(Constants.EXTRAS_USER);
|
||||
|
||||
boolean isPrivate = user.getBoolean("is_private");
|
||||
boolean reallyPrivate = isPrivate;
|
||||
final JSONObject timelineMedia = user.getJSONObject("edge_owner_to_timeline_media");
|
||||
if (timelineMedia.has("edges")) {
|
||||
final JSONArray edges = timelineMedia.getJSONArray("edges");
|
||||
if (edges.length() > 0) isPrivate = false;
|
||||
if (edges.length() > 0) reallyPrivate = false;
|
||||
}
|
||||
|
||||
String url = user.optString("external_url");
|
||||
if (Utils.isEmpty(url)) url = null;
|
||||
|
||||
result = new ProfileModel(isPrivate,
|
||||
reallyPrivate,
|
||||
user.getBoolean("is_verified"),
|
||||
user.getString(Constants.EXTRAS_ID),
|
||||
userName,
|
||||
|
@ -19,14 +19,11 @@ public abstract class BasePostModel implements Serializable {
|
||||
protected long timestamp;
|
||||
protected int position;
|
||||
boolean liked, bookmarked;
|
||||
long likes;
|
||||
|
||||
public boolean getLike() {
|
||||
return liked;
|
||||
}
|
||||
public long getLikes() {
|
||||
return likes;
|
||||
}
|
||||
|
||||
public boolean getBookmark() {
|
||||
return bookmarked;
|
||||
}
|
||||
@ -35,13 +32,6 @@ public abstract class BasePostModel implements Serializable {
|
||||
liked = like; return liked;
|
||||
}
|
||||
|
||||
// setManualLike means user liked from InstaGrabber
|
||||
public boolean setManualLike(final boolean like) {
|
||||
liked = like;
|
||||
likes = (like) ? (likes + 1) : (likes - 1);
|
||||
return liked;
|
||||
}
|
||||
|
||||
public boolean setBookmark(final boolean bookmark) {
|
||||
bookmarked = bookmark; return bookmarked;
|
||||
}
|
||||
|
@ -23,7 +23,6 @@ public class PostModel extends BasePostModel {
|
||||
this.postCaption = postCaption;
|
||||
this.timestamp = timestamp;
|
||||
this.liked = liked;
|
||||
this.likes = likes;
|
||||
this.bookmarked = bookmarked;
|
||||
}
|
||||
|
||||
@ -35,10 +34,6 @@ public class PostModel extends BasePostModel {
|
||||
return endCursor;
|
||||
}
|
||||
|
||||
public long getLikes() {
|
||||
return likes;
|
||||
}
|
||||
|
||||
public boolean hasNextPage() {
|
||||
return endCursor != null && hasNextPage;
|
||||
}
|
||||
|
@ -3,15 +3,17 @@ package awais.instagrabber.models;
|
||||
import java.io.Serializable;
|
||||
|
||||
public final class ProfileModel implements Serializable {
|
||||
private final boolean isPrivate, isVerified, following, restricted, blocked, requested;
|
||||
private final boolean isPrivate, reallyPrivate, isVerified, following, restricted, blocked, requested;
|
||||
private final long postCount, followersCount, followingCount;
|
||||
private final String id, username, name, biography, url, sdProfilePic, hdProfilePic;
|
||||
|
||||
public ProfileModel(final boolean isPrivate, final boolean isVerified, final String id, final String username,
|
||||
final String name, final String biography, final String url, final String sdProfilePic, final String hdProfilePic,
|
||||
final long postCount, final long followersCount, final long followingCount, final boolean following,
|
||||
final boolean restricted, final boolean blocked, final boolean requested) {
|
||||
public ProfileModel(final boolean isPrivate, final boolean reallyPrivate,
|
||||
final boolean isVerified, final String id, final String username, final String name, final String biography,
|
||||
final String url, final String sdProfilePic, final String hdProfilePic, final long postCount,
|
||||
final long followersCount, final long followingCount, final boolean following, final boolean restricted,
|
||||
final boolean blocked, final boolean requested) {
|
||||
this.isPrivate = isPrivate;
|
||||
this.reallyPrivate = reallyPrivate;
|
||||
this.isVerified = isVerified;
|
||||
this.id = id;
|
||||
this.url = url;
|
||||
@ -33,6 +35,10 @@ public final class ProfileModel implements Serializable {
|
||||
return isPrivate;
|
||||
}
|
||||
|
||||
public boolean isReallyPrivate() {
|
||||
return reallyPrivate;
|
||||
}
|
||||
|
||||
public boolean isVerified() {
|
||||
return isVerified;
|
||||
}
|
||||
|
@ -6,12 +6,12 @@ public final class ViewerPostModel extends BasePostModel {
|
||||
protected final String username;
|
||||
protected final long videoViews;
|
||||
protected String sliderDisplayUrl, commentsEndCursor;
|
||||
protected long commentsCount;
|
||||
protected long commentsCount, likes;
|
||||
private boolean isCurrentSlide = false;
|
||||
|
||||
public ViewerPostModel(final MediaItemType itemType, final String postId, final String displayUrl, final String shortCode,
|
||||
final String postCaption, final String username, final long videoViews, final long timestamp,
|
||||
boolean liked, boolean bookmarked) {
|
||||
boolean liked, boolean bookmarked, long likes) {
|
||||
this.itemType = itemType;
|
||||
this.postId = postId;
|
||||
this.displayUrl = displayUrl;
|
||||
@ -21,6 +21,7 @@ public final class ViewerPostModel extends BasePostModel {
|
||||
this.videoViews = videoViews;
|
||||
this.timestamp = timestamp;
|
||||
this.liked = liked;
|
||||
this.likes = likes;
|
||||
this.bookmarked = bookmarked;
|
||||
}
|
||||
|
||||
@ -44,6 +45,17 @@ public final class ViewerPostModel extends BasePostModel {
|
||||
return videoViews;
|
||||
}
|
||||
|
||||
public long getLikes() {
|
||||
return likes;
|
||||
}
|
||||
|
||||
// setManualLike means user liked from InstaGrabber
|
||||
public boolean setManualLike(final boolean like) {
|
||||
liked = like;
|
||||
likes = (like) ? (likes + 1) : (likes - 1);
|
||||
return liked;
|
||||
}
|
||||
|
||||
public void setSliderDisplayUrl(final String sliderDisplayUrl) {
|
||||
this.sliderDisplayUrl = sliderDisplayUrl;
|
||||
}
|
||||
|
@ -63,6 +63,8 @@ public final class LocaleUtils {
|
||||
if (appLanguageIndex == 4) return "zh";
|
||||
if (appLanguageIndex == 5) return "in";
|
||||
if (appLanguageIndex == 6) return "it";
|
||||
if (appLanguageIndex == 7) return "de";
|
||||
if (appLanguageIndex == 8) return "pl";
|
||||
|
||||
return null;
|
||||
}
|
||||
|
@ -382,6 +382,7 @@ public final class Utils {
|
||||
if (userObj != null) {
|
||||
user = new ProfileModel(
|
||||
userObj.getBoolean("is_private"),
|
||||
false, // temporary
|
||||
userObj.optBoolean("is_verified"),
|
||||
String.valueOf(userObj.get("pk")),
|
||||
userObj.getString("username"),
|
||||
@ -459,6 +460,7 @@ public final class Utils {
|
||||
for (int j = 0; j < usersLen; ++j) {
|
||||
final JSONObject userObject = users.getJSONObject(j);
|
||||
userModels[j] = new ProfileModel(userObject.getBoolean("is_private"),
|
||||
false,
|
||||
userObject.optBoolean("is_verified"),
|
||||
String.valueOf(userObject.get("pk")),
|
||||
userObject.getString("username"),
|
||||
@ -608,6 +610,7 @@ public final class Utils {
|
||||
case PROFILE: {
|
||||
final JSONObject profile = itemObject.getJSONObject("profile");
|
||||
profileModel = new ProfileModel(profile.getBoolean("is_private"),
|
||||
false,
|
||||
profile.getBoolean("is_verified"),
|
||||
Long.toString(profile.getLong("pk")),
|
||||
profile.getString("username"),
|
||||
|
@ -8,8 +8,8 @@
|
||||
<item>简体中文</item>
|
||||
<item>印尼文 [感谢 @Galang23 (GitLab)]</item>
|
||||
<item>意大利文 [感谢 @RAR_Ramar (Telegram)]</item>
|
||||
<item>German [Thanks to @MoaufmKlo (GitHub)]</item>
|
||||
<item>Polish [Thanks to @Lego8486 (GitHub)]</item>
|
||||
<item>德文 [感谢 @MoaufmKlo (GitHub)]</item>
|
||||
<item>波兰文 [感谢 @Lego8486 (GitHub)]</item>
|
||||
</string-array>
|
||||
<string-array name="theme_presets">
|
||||
<item>自动 / 跟随系统</item>
|
||||
|
@ -68,16 +68,16 @@
|
||||
<string name="project_link">参观项目页面</string>
|
||||
<string name="telegram_link">加入 Telegram 群组</string>
|
||||
<string name="matrix_link">加入 Matrix 群组</string>
|
||||
<string name="like">Like (%s)</string>
|
||||
<string name="unlike">Unlike (%s)</string>
|
||||
<string name="like">赞 (%s)</string>
|
||||
<string name="unlike">取消赞 (%s)</string>
|
||||
<string name="bookmark">加入收藏</string>
|
||||
<string name="unbookmark">解除收藏</string>
|
||||
<string name="follow">关注</string>
|
||||
<string name="unfollow">脱粉</string>
|
||||
<string name="favorite">Add to Favorites</string>
|
||||
<string name="unfavorite">Remove from Favorites</string>
|
||||
<string name="favorite_short">Favorite</string>
|
||||
<string name="unfavorite_short">Unfavorite</string>
|
||||
<string name="favorite">加入收藏</string>
|
||||
<string name="unfavorite">取消收藏</string>
|
||||
<string name="favorite_short">加入收藏</string>
|
||||
<string name="unfavorite_short">取消收藏</string>
|
||||
<string name="block">拉黑</string>
|
||||
<string name="unblock">解禁</string>
|
||||
<string name="restrict">限制</string>
|
||||
@ -109,7 +109,7 @@
|
||||
<string name="quick_access_confirm_delete">你真的要删除 %s?</string>
|
||||
<string name="profile_viewer_imageinfo">宽: %d\n高: %d</string>
|
||||
<string name="profile_viewer_colordepth_prefix">\n色深:</string>
|
||||
<string name="profile_endpoint">Select profile picture endpoint\n(Does not affect hashtags)</string>
|
||||
<string name="profile_endpoint">选择高清头像终端\n(不影响标签)</string>
|
||||
<string name="open_profile">打开主页</string>
|
||||
<string name="view_pfp">查看头像</string>
|
||||
<string name="direct_messages_you">你</string>
|
||||
@ -147,11 +147,11 @@
|
||||
<string name="downloader_error_download_file">下载文件时出错</string>
|
||||
<string name="comment_viewer_copy_user">复制用户名</string>
|
||||
<string name="comment_viewer_copy_comment">复制评论</string>
|
||||
<string name="comment_viewer_reply_comment">Reply to comment</string>
|
||||
<string name="comment_viewer_like_comment">Like comment</string>
|
||||
<string name="comment_viewer_unlike_comment">Unlike comment</string>
|
||||
<string name="comment_viewer_delete_comment">Delete comment</string>
|
||||
<string name="comment_send_empty_comment">No empty comments, dawg!</string>
|
||||
<string name="comment_viewer_reply_comment">回复评论</string>
|
||||
<string name="comment_viewer_like_comment">赞评论</string>
|
||||
<string name="comment_viewer_unlike_comment">取消赞评论</string>
|
||||
<string name="comment_viewer_delete_comment">删除评论</string>
|
||||
<string name="comment_send_empty_comment">评论不得为空!</string>
|
||||
<string name="comment_view_mention_user_search">要搜索用户名吗?</string>
|
||||
<string name="comment_view_mention_hash_search">要搜索标签吗?</string>
|
||||
<string name="followers_type_followers">粉丝</string>
|
||||
@ -164,8 +164,10 @@
|
||||
<string name="login_success_loading_cookies">成功载入 cookies!\n若你仍不能查看私密页面/帖子,重新登录!</string>
|
||||
<string name="comment_hint">撰写新评论...</string>
|
||||
<string name="update_available">检测到有新版本! (%s)</string>
|
||||
<string name="update_notice">Reminder: If you downloaded from F-Droid, you must update from it! Same applies for GitHub.</string>
|
||||
<string name="update_notice">注意:若您下载的是F-Droid版本的,那您还得在F-Droid更新!GitHub版本也是如此。</string>
|
||||
<string name="updated">感谢阁下更新InstaGrabber!</string>
|
||||
<string name="crash_title">应用崩溃了</string>
|
||||
<string name="crash_descr">糟糕.. 应用崩溃了,不过别担心,你可以向开发者发送错误报告来帮助他修复问题。(:</string>
|
||||
<string name="share_public_post">分享公开帖至…</string>
|
||||
<string name="share_private_post">这是一个私密帖!请分享给能看到它的人!</string>
|
||||
</resources>
|
||||
|
@ -169,6 +169,9 @@
|
||||
|
||||
<string name="comment_hint">Write a new comment...</string>
|
||||
|
||||
<string name="share_public_post">Share this public post to...</string>
|
||||
<string name="share_private_post">This is a private post! Share to those who can view them!</string>
|
||||
|
||||
<string name="update_available">An update is available! (%s)</string>
|
||||
<string name="update_notice">Reminder: If you downloaded from F-Droid, you must update from it! Same applies for GitHub.</string>
|
||||
<string name="updated">Thank you for updating InstaGrabber!</string>
|
||||
|
@ -1,6 +1,8 @@
|
||||
* You can now write comments, and reply/like/delete comments through the menu (by clicking the comment)
|
||||
* You're actually
|
||||
* Liked comments are shown with a pink background
|
||||
* Post like counts are now displayed (The button texts are slightly reduced to accomodate @world_record_egg)
|
||||
* You can now share posts in the post viewer
|
||||
* Search field is now empty if you're viewing your own profile while logged in
|
||||
* Post like counts are now displayed (The button texts are slightly reduced to accomodate @world_record_egg) (logged in only)
|
||||
* Mute buttons are changed to display the current status (i.e. muted icon when muted, sound icon when not muted)
|
||||
* Fixed a bug relating to viewing feed stories
|
||||
* Fixed a bug where scrolling in full screen causes it to quit full screen
|
Loading…
Reference in New Issue
Block a user