Compare commits
24 Commits
d9f9fb51db
...
v0.1.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0942f7c5ec | ||
|
|
efe90d0030 | ||
|
|
2d45f337d7 | ||
|
|
70cf6f3340 | ||
|
|
6542859892 | ||
|
|
143bc5e1b6 | ||
|
|
6e51ea6ee7 | ||
|
|
d7c4e3d5bc | ||
|
|
1ed86c138e | ||
|
|
2d83545865 | ||
|
|
3594f10fdd | ||
|
|
a903ac9dbd | ||
|
|
ed90a278a6 | ||
|
|
6221b33a3d | ||
|
|
2561ba8bd0 | ||
|
|
9859608764 | ||
|
|
b40077f83f | ||
|
|
76dc0ff083 | ||
|
|
6a2d59ed48 | ||
|
|
a09d6f85f8 | ||
|
|
2f3d39ed31 | ||
|
|
83e0fc039f | ||
|
|
d4ca682882 | ||
|
|
e2b75a3928 |
@@ -21,8 +21,8 @@ android {
|
|||||||
applicationId "eu.toldi.infinityforlemmy"
|
applicationId "eu.toldi.infinityforlemmy"
|
||||||
minSdk 21
|
minSdk 21
|
||||||
targetSdk 33
|
targetSdk 33
|
||||||
versionCode 129
|
versionCode 130
|
||||||
versionName "0.1.0"
|
versionName "0.1.1"
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
javaCompileOptions {
|
javaCompileOptions {
|
||||||
annotationProcessorOptions {
|
annotationProcessorOptions {
|
||||||
@@ -108,7 +108,7 @@ dependencies {
|
|||||||
implementation 'androidx.cardview:cardview:1.0.0'
|
implementation 'androidx.cardview:cardview:1.0.0'
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
|
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
|
||||||
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
||||||
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.0"
|
|
||||||
def lifecycleVersion = "2.5.1"
|
def lifecycleVersion = "2.5.1"
|
||||||
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycleVersion"
|
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycleVersion"
|
||||||
implementation "androidx.lifecycle:lifecycle-livedata:$lifecycleVersion"
|
implementation "androidx.lifecycle:lifecycle-livedata:$lifecycleVersion"
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import android.content.pm.PackageManager;
|
|||||||
import android.content.pm.ResolveInfo;
|
import android.content.pm.ResolveInfo;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.Handler;
|
||||||
import android.webkit.URLUtil;
|
import android.webkit.URLUtil;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
@@ -17,8 +18,11 @@ import androidx.browser.customtabs.CustomTabsService;
|
|||||||
|
|
||||||
import org.apache.commons.io.FilenameUtils;
|
import org.apache.commons.io.FilenameUtils;
|
||||||
|
|
||||||
|
import java.net.MalformedURLException;
|
||||||
|
import java.net.URL;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.Executor;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Named;
|
import javax.inject.Named;
|
||||||
@@ -29,6 +33,7 @@ import eu.toldi.infinityforlemmy.RetrofitHolder;
|
|||||||
import eu.toldi.infinityforlemmy.comment.Comment;
|
import eu.toldi.infinityforlemmy.comment.Comment;
|
||||||
import eu.toldi.infinityforlemmy.comment.FetchComment;
|
import eu.toldi.infinityforlemmy.comment.FetchComment;
|
||||||
import eu.toldi.infinityforlemmy.customtheme.CustomThemeWrapper;
|
import eu.toldi.infinityforlemmy.customtheme.CustomThemeWrapper;
|
||||||
|
import eu.toldi.infinityforlemmy.post.FetchPost;
|
||||||
import eu.toldi.infinityforlemmy.post.ObjectResolver;
|
import eu.toldi.infinityforlemmy.post.ObjectResolver;
|
||||||
import eu.toldi.infinityforlemmy.post.Post;
|
import eu.toldi.infinityforlemmy.post.Post;
|
||||||
import eu.toldi.infinityforlemmy.utils.LemmyUtils;
|
import eu.toldi.infinityforlemmy.utils.LemmyUtils;
|
||||||
@@ -75,6 +80,9 @@ public class LinkResolverActivity extends AppCompatActivity {
|
|||||||
@Named("no_oauth")
|
@Named("no_oauth")
|
||||||
RetrofitHolder mRetrofit;
|
RetrofitHolder mRetrofit;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
Executor mExecutor;
|
||||||
|
|
||||||
private String mAccessToken;
|
private String mAccessToken;
|
||||||
|
|
||||||
private Uri getRedditUriByPath(String path) {
|
private Uri getRedditUriByPath(String path) {
|
||||||
@@ -100,14 +108,14 @@ public class LinkResolverActivity extends AppCompatActivity {
|
|||||||
if (uri == null) {
|
if (uri == null) {
|
||||||
String url = getIntent().getStringExtra(Intent.EXTRA_TEXT);
|
String url = getIntent().getStringExtra(Intent.EXTRA_TEXT);
|
||||||
if (!URLUtil.isValidUrl(url)) {
|
if (!URLUtil.isValidUrl(url)) {
|
||||||
Toast.makeText(this, R.string.invalid_link, Toast.LENGTH_SHORT).show();
|
Toast.makeText(getApplicationContext(), R.string.invalid_link, Toast.LENGTH_SHORT).show();
|
||||||
finish();
|
finish();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
uri = Uri.parse(url);
|
uri = Uri.parse(url);
|
||||||
} catch (NullPointerException e) {
|
} catch (NullPointerException e) {
|
||||||
Toast.makeText(this, R.string.invalid_link, Toast.LENGTH_SHORT).show();
|
Toast.makeText(getApplicationContext(), R.string.invalid_link, Toast.LENGTH_SHORT).show();
|
||||||
finish();
|
finish();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -115,7 +123,7 @@ public class LinkResolverActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
if (uri.getScheme() == null && uri.getHost() == null) {
|
if (uri.getScheme() == null && uri.getHost() == null) {
|
||||||
if (uri.toString().isEmpty()) {
|
if (uri.toString().isEmpty()) {
|
||||||
Toast.makeText(this, R.string.invalid_link, Toast.LENGTH_SHORT).show();
|
Toast.makeText(getApplicationContext(), R.string.invalid_link, Toast.LENGTH_SHORT).show();
|
||||||
finish();
|
finish();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -127,7 +135,7 @@ public class LinkResolverActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
private void handleUri(Uri uri) {
|
private void handleUri(Uri uri) {
|
||||||
if (uri == null) {
|
if (uri == null) {
|
||||||
Toast.makeText(this, R.string.no_link_available, Toast.LENGTH_SHORT).show();
|
Toast.makeText(getApplicationContext(), R.string.no_link_available, Toast.LENGTH_SHORT).show();
|
||||||
} else {
|
} else {
|
||||||
String path = uri.getPath();
|
String path = uri.getPath();
|
||||||
if (path == null) {
|
if (path == null) {
|
||||||
@@ -201,6 +209,34 @@ public class LinkResolverActivity extends AppCompatActivity {
|
|||||||
intent.putExtra(ViewPostDetailActivity.EXTRA_NEW_ACCOUNT_NAME, newAccountName);
|
intent.putExtra(ViewPostDetailActivity.EXTRA_NEW_ACCOUNT_NAME, newAccountName);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
} else {
|
} else {
|
||||||
|
boolean local = false;
|
||||||
|
try {
|
||||||
|
URL baseURL = new URL(mRetrofit.getBaseURL());
|
||||||
|
if (baseURL.getHost().equalsIgnoreCase(uri.getHost())) {
|
||||||
|
local = true;
|
||||||
|
FetchPost.fetchPost(mExecutor, new Handler(), mRetrofit.getRetrofit(), segments.get(segments.size() - 1), mAccessToken, new FetchPost.FetchPostListener() {
|
||||||
|
@Override
|
||||||
|
public void fetchPostSuccess(Post post) {
|
||||||
|
|
||||||
|
Intent intent = new Intent(LinkResolverActivity.this, ViewPostDetailActivity.class);
|
||||||
|
intent.putExtra(ViewPostDetailActivity.EXTRA_POST_ID, post.getId());
|
||||||
|
intent.putExtra(ViewPostDetailActivity.EXTRA_MESSAGE_FULLNAME, messageFullname);
|
||||||
|
intent.putExtra(ViewPostDetailActivity.EXTRA_NEW_ACCOUNT_NAME, newAccountName);
|
||||||
|
startActivity(intent);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void fetchPostFailed() {
|
||||||
|
Toast.makeText(getApplicationContext(), R.string.could_not_resolve_link, Toast.LENGTH_SHORT).show();
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (MalformedURLException e) {
|
||||||
|
Toast.makeText(getApplicationContext(), R.string.could_not_resolve_link, Toast.LENGTH_SHORT).show();
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
if (!local) {
|
||||||
mObjectResolver.resolvePost(uri.toString(), mAccessToken, new ObjectResolver.ObjectResolverListener() {
|
mObjectResolver.resolvePost(uri.toString(), mAccessToken, new ObjectResolver.ObjectResolverListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onResolveObjectSuccess(Object p) {
|
public void onResolveObjectSuccess(Object p) {
|
||||||
@@ -214,11 +250,12 @@ public class LinkResolverActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResolveObjectFailed() {
|
public void onResolveObjectFailed() {
|
||||||
Toast.makeText(LinkResolverActivity.this, R.string.could_not_resolve_link, Toast.LENGTH_SHORT).show();
|
Toast.makeText(getApplicationContext(), R.string.could_not_resolve_link, Toast.LENGTH_SHORT).show();
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else if (uri.toString().matches(COMMENT_PATTERN)) {
|
} else if (uri.toString().matches(COMMENT_PATTERN)) {
|
||||||
if (mAccessToken == null) {
|
if (mAccessToken == null) {
|
||||||
mRetrofit.setBaseURL(uri.getScheme() + "://" + uri.getHost() + "/");
|
mRetrofit.setBaseURL(uri.getScheme() + "://" + uri.getHost() + "/");
|
||||||
@@ -237,11 +274,41 @@ public class LinkResolverActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFetchCommentFailed() {
|
public void onFetchCommentFailed() {
|
||||||
Toast.makeText(LinkResolverActivity.this, R.string.could_not_resolve_link, Toast.LENGTH_SHORT).show();
|
Toast.makeText(getApplicationContext(), R.string.could_not_resolve_link, Toast.LENGTH_SHORT).show();
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
boolean local = false;
|
||||||
|
try {
|
||||||
|
URL baseURL = new URL(mRetrofit.getBaseURL());
|
||||||
|
if (baseURL.getHost().equalsIgnoreCase(uri.getHost())) {
|
||||||
|
local = true;
|
||||||
|
FetchComment.fetchSingleComment(mRetrofit.getRetrofit(), mAccessToken, Integer.parseInt(segments.get(segments.size() - 1)), new FetchComment.FetchCommentListener() {
|
||||||
|
@Override
|
||||||
|
public void onFetchCommentSuccess(ArrayList<Comment> comments, Integer parentId, ArrayList<Integer> moreChildrenIds) {
|
||||||
|
Intent intent = new Intent(LinkResolverActivity.this, ViewPostDetailActivity.class);
|
||||||
|
Comment comment = comments.get(0);
|
||||||
|
intent.putExtra(ViewPostDetailActivity.EXTRA_POST_ID, comment.getPostId());
|
||||||
|
intent.putExtra(ViewPostDetailActivity.EXTRA_MESSAGE_FULLNAME, messageFullname);
|
||||||
|
intent.putExtra(ViewPostDetailActivity.EXTRA_NEW_ACCOUNT_NAME, newAccountName);
|
||||||
|
intent.putExtra(ViewPostDetailActivity.EXTRA_SINGLE_COMMENT_ID, comment.getId());
|
||||||
|
intent.putExtra(ViewPostDetailActivity.EXTRA_SINGLE_COMMENT_PARENT_ID, comment.getParentId());
|
||||||
|
startActivity(intent);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFetchCommentFailed() {
|
||||||
|
Toast.makeText(getApplicationContext(), R.string.could_not_resolve_link, Toast.LENGTH_SHORT).show();
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (MalformedURLException e) {
|
||||||
|
Toast.makeText(getApplicationContext(), R.string.could_not_resolve_link, Toast.LENGTH_SHORT).show();
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
if (!local) {
|
||||||
mObjectResolver.resolveComment(uri.toString(), mAccessToken, new ObjectResolver.ObjectResolverListener() {
|
mObjectResolver.resolveComment(uri.toString(), mAccessToken, new ObjectResolver.ObjectResolverListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onResolveObjectSuccess(Object c) {
|
public void onResolveObjectSuccess(Object c) {
|
||||||
@@ -257,11 +324,12 @@ public class LinkResolverActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResolveObjectFailed() {
|
public void onResolveObjectFailed() {
|
||||||
Toast.makeText(LinkResolverActivity.this, R.string.could_not_resolve_link, Toast.LENGTH_SHORT).show();
|
Toast.makeText(getApplicationContext(), R.string.could_not_resolve_link, Toast.LENGTH_SHORT).show();
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else if (authority.equals("v.redd.it")) {
|
} else if (authority.equals("v.redd.it")) {
|
||||||
Intent intent = new Intent(this, ViewVideoActivity.class);
|
Intent intent = new Intent(this, ViewVideoActivity.class);
|
||||||
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_TYPE, ViewVideoActivity.VIDEO_TYPE_V_REDD_IT);
|
intent.putExtra(ViewVideoActivity.EXTRA_VIDEO_TYPE, ViewVideoActivity.VIDEO_TYPE_V_REDD_IT);
|
||||||
|
|||||||
@@ -504,7 +504,7 @@ public class PostGalleryActivity extends BaseActivity implements FlairBottomShee
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void loadSubredditIcon() {
|
private void loadSubredditIcon() {
|
||||||
LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, subredditName, mAccessToken, mOauthRetrofit, mRetrofit.getRetrofit(), iconImageUrl -> {
|
LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, subredditName, mAccessToken, mRetrofit.getRetrofit(), iconImageUrl -> {
|
||||||
iconUrl = iconImageUrl;
|
iconUrl = iconImageUrl;
|
||||||
displaySubredditIcon();
|
displaySubredditIcon();
|
||||||
loadSubredditIconSuccessful = true;
|
loadSubredditIconSuccessful = true;
|
||||||
|
|||||||
@@ -475,6 +475,8 @@ public class PostImageActivity extends BaseActivity implements FlairBottomSheetF
|
|||||||
nsfwTextView.setTextColor(primaryTextColor);
|
nsfwTextView.setTextColor(primaryTextColor);
|
||||||
titleEditText.setTextColor(primaryTextColor);
|
titleEditText.setTextColor(primaryTextColor);
|
||||||
titleEditText.setHintTextColor(secondaryTextColor);
|
titleEditText.setHintTextColor(secondaryTextColor);
|
||||||
|
contentEditText.setTextColor(primaryTextColor);
|
||||||
|
contentEditText.setHintTextColor(secondaryTextColor);
|
||||||
boolean circleFab = mSharedPreferences.getBoolean(SharedPreferencesUtils.USE_CIRCULAR_FAB, false);
|
boolean circleFab = mSharedPreferences.getBoolean(SharedPreferencesUtils.USE_CIRCULAR_FAB, false);
|
||||||
applyFABTheme(captureFab, circleFab);
|
applyFABTheme(captureFab, circleFab);
|
||||||
applyFABTheme(selectFromLibraryFab, circleFab);
|
applyFABTheme(selectFromLibraryFab, circleFab);
|
||||||
@@ -487,6 +489,10 @@ public class PostImageActivity extends BaseActivity implements FlairBottomSheetF
|
|||||||
titleEditText.setTypeface(typeface);
|
titleEditText.setTypeface(typeface);
|
||||||
selectAgainTextView.setTypeface(typeface);
|
selectAgainTextView.setTypeface(typeface);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (contentTypeface != null) {
|
||||||
|
contentEditText.setTypeface(contentTypeface);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadImage() {
|
private void loadImage() {
|
||||||
@@ -511,7 +517,7 @@ public class PostImageActivity extends BaseActivity implements FlairBottomSheetF
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void loadSubredditIcon() {
|
private void loadSubredditIcon() {
|
||||||
LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, communityData.getQualified_name(), mAccessToken, mOauthRetrofit, mRetrofit.getRetrofit(), iconImageUrl -> {
|
LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, communityData.getQualified_name(), mAccessToken, mRetrofit.getRetrofit(), iconImageUrl -> {
|
||||||
iconUrl = iconImageUrl;
|
iconUrl = iconImageUrl;
|
||||||
displaySubredditIcon();
|
displaySubredditIcon();
|
||||||
loadSubredditIconSuccessful = true;
|
loadSubredditIconSuccessful = true;
|
||||||
|
|||||||
@@ -458,6 +458,8 @@ public class PostLinkActivity extends BaseActivity implements FlairBottomSheetFr
|
|||||||
titleEditText.setHintTextColor(secondaryTextColor);
|
titleEditText.setHintTextColor(secondaryTextColor);
|
||||||
suggestTitleButton.setBackgroundColor(mCustomThemeWrapper.getColorPrimaryLightTheme());
|
suggestTitleButton.setBackgroundColor(mCustomThemeWrapper.getColorPrimaryLightTheme());
|
||||||
suggestTitleButton.setTextColor(mCustomThemeWrapper.getButtonTextColor());
|
suggestTitleButton.setTextColor(mCustomThemeWrapper.getButtonTextColor());
|
||||||
|
contentEditText.setTextColor(primaryTextColor);
|
||||||
|
contentEditText.setHintTextColor(secondaryTextColor);
|
||||||
linkEditText.setTextColor(primaryTextColor);
|
linkEditText.setTextColor(primaryTextColor);
|
||||||
linkEditText.setHintTextColor(secondaryTextColor);
|
linkEditText.setHintTextColor(secondaryTextColor);
|
||||||
if (typeface != null) {
|
if (typeface != null) {
|
||||||
@@ -470,6 +472,7 @@ public class PostLinkActivity extends BaseActivity implements FlairBottomSheetFr
|
|||||||
}
|
}
|
||||||
if (contentTypeface != null) {
|
if (contentTypeface != null) {
|
||||||
linkEditText.setTypeface(contentTypeface);
|
linkEditText.setTypeface(contentTypeface);
|
||||||
|
contentEditText.setTypeface(contentTypeface);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -489,7 +492,7 @@ public class PostLinkActivity extends BaseActivity implements FlairBottomSheetFr
|
|||||||
|
|
||||||
private void loadSubredditIcon() {
|
private void loadSubredditIcon() {
|
||||||
LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, communityData.getQualified_name(),
|
LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, communityData.getQualified_name(),
|
||||||
mAccessToken, mOauthRetrofit, mRetrofit.getRetrofit(), iconImageUrl -> {
|
mAccessToken, mRetrofit.getRetrofit(), iconImageUrl -> {
|
||||||
iconUrl = iconImageUrl;
|
iconUrl = iconImageUrl;
|
||||||
displaySubredditIcon();
|
displaySubredditIcon();
|
||||||
loadSubredditIconSuccessful = true;
|
loadSubredditIconSuccessful = true;
|
||||||
|
|||||||
@@ -500,7 +500,7 @@ public class PostPollActivity extends BaseActivity implements FlairBottomSheetFr
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void loadSubredditIcon() {
|
private void loadSubredditIcon() {
|
||||||
LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, subredditName, mAccessToken, mOauthRetrofit, mRetrofit.getRetrofit(), iconImageUrl -> {
|
LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, subredditName, mAccessToken, mRetrofit.getRetrofit(), iconImageUrl -> {
|
||||||
iconUrl = iconImageUrl;
|
iconUrl = iconImageUrl;
|
||||||
displaySubredditIcon();
|
displaySubredditIcon();
|
||||||
loadSubredditIconSuccessful = true;
|
loadSubredditIconSuccessful = true;
|
||||||
|
|||||||
@@ -451,7 +451,7 @@ public class PostTextActivity extends BaseActivity implements FlairBottomSheetFr
|
|||||||
|
|
||||||
private void loadSubredditIcon() {
|
private void loadSubredditIcon() {
|
||||||
LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, communityData.getQualified_name(),
|
LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, communityData.getQualified_name(),
|
||||||
mAccessToken, mOauthRetrofit, mRetrofit.getRetrofit(), iconImageUrl -> {
|
mAccessToken, mRetrofit.getRetrofit(), iconImageUrl -> {
|
||||||
iconUrl = iconImageUrl;
|
iconUrl = iconImageUrl;
|
||||||
displaySubredditIcon();
|
displaySubredditIcon();
|
||||||
loadSubredditIconSuccessful = true;
|
loadSubredditIconSuccessful = true;
|
||||||
|
|||||||
@@ -486,7 +486,7 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
|
|||||||
|
|
||||||
private void loadSubredditIcon() {
|
private void loadSubredditIcon() {
|
||||||
LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, subredditName,
|
LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, subredditName,
|
||||||
mAccessToken, mOauthRetrofit, mRetrofit.getRetrofit(), iconImageUrl -> {
|
mAccessToken, mRetrofit.getRetrofit(), iconImageUrl -> {
|
||||||
iconUrl = iconImageUrl;
|
iconUrl = iconImageUrl;
|
||||||
displaySubredditIcon();
|
displaySubredditIcon();
|
||||||
loadSubredditIconSuccessful = true;
|
loadSubredditIconSuccessful = true;
|
||||||
|
|||||||
@@ -433,12 +433,14 @@ public class SearchActivity extends BaseActivity {
|
|||||||
if (resultCode == RESULT_OK && data != null) {
|
if (resultCode == RESULT_OK && data != null) {
|
||||||
if (requestCode == SUBREDDIT_SELECTION_REQUEST_CODE) {
|
if (requestCode == SUBREDDIT_SELECTION_REQUEST_CODE) {
|
||||||
communityData = data.getParcelableExtra(SubredditSelectionActivity.EXTRA_RETURN_COMMUNITY_DATA);
|
communityData = data.getParcelableExtra(SubredditSelectionActivity.EXTRA_RETURN_COMMUNITY_DATA);
|
||||||
subredditName = communityData.getName();
|
|
||||||
subredditIsUser = false;
|
subredditIsUser = false;
|
||||||
|
|
||||||
if (subredditName == null) {
|
if (communityData == null) {
|
||||||
subredditNameTextView.setText(R.string.all_communities);
|
subredditNameTextView.setText(R.string.all_communities);
|
||||||
} else {
|
} else {
|
||||||
|
subredditName = communityData.getName();
|
||||||
|
communityQualifiedName = communityData.getQualified_name();
|
||||||
subredditNameTextView.setText(subredditName);
|
subredditNameTextView.setText(subredditName);
|
||||||
}
|
}
|
||||||
} else if (requestCode == SUBREDDIT_SEARCH_REQUEST_CODE) {
|
} else if (requestCode == SUBREDDIT_SEARCH_REQUEST_CODE) {
|
||||||
|
|||||||
@@ -499,7 +499,7 @@ public class SubmitCrosspostActivity extends BaseActivity implements FlairBottom
|
|||||||
|
|
||||||
private void loadSubredditIcon() {
|
private void loadSubredditIcon() {
|
||||||
LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, subredditName,
|
LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, subredditName,
|
||||||
mAccessToken, mOauthRetrofit, mRetrofit.getRetrofit(), iconImageUrl -> {
|
mAccessToken, mRetrofit.getRetrofit(), iconImageUrl -> {
|
||||||
iconUrl = iconImageUrl;
|
iconUrl = iconImageUrl;
|
||||||
displaySubredditIcon();
|
displaySubredditIcon();
|
||||||
loadSubredditIconSuccessful = true;
|
loadSubredditIconSuccessful = true;
|
||||||
|
|||||||
@@ -572,7 +572,9 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
|
|||||||
} else if (holder instanceof CommentFullyCollapsedViewHolder) {
|
} else if (holder instanceof CommentFullyCollapsedViewHolder) {
|
||||||
Comment comment = getCurrentComment(position);
|
Comment comment = getCurrentComment(position);
|
||||||
if (comment != null) {
|
if (comment != null) {
|
||||||
String authorWithPrefix = "u/" + comment.getAuthorName();
|
String author_name = (mShowUserDisplayName) ? comment.getAuthorName() : comment.getAuthor().getUsername();
|
||||||
|
String authorInstance = (mHideUserInstance) ? "" : "@" + comment.getAuthor().getQualifiedName().split(Pattern.quote("@"))[1];
|
||||||
|
String authorWithPrefix = author_name + authorInstance;
|
||||||
((CommentFullyCollapsedViewHolder) holder).usernameTextView.setText(authorWithPrefix);
|
((CommentFullyCollapsedViewHolder) holder).usernameTextView.setText(authorWithPrefix);
|
||||||
|
|
||||||
if (comment.getAuthorIconUrl() == null) {
|
if (comment.getAuthorIconUrl() == null) {
|
||||||
@@ -662,21 +664,21 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
|
|||||||
mExpandChildren, 1, new FetchComment.FetchCommentListener() {
|
mExpandChildren, 1, new FetchComment.FetchCommentListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onFetchCommentSuccess(ArrayList<Comment> expandedComments, Integer parentId, ArrayList<Integer> children) {
|
public void onFetchCommentSuccess(ArrayList<Comment> expandedComments, Integer parentId, ArrayList<Integer> children) {
|
||||||
if (mVisibleComments.size() > parentPosition
|
if (parentComment.getId() == mVisibleComments.get(parentPosition).getId()) {
|
||||||
&& parentComment.getId() == mVisibleComments.get(parentPosition).getId()) {
|
|
||||||
if (mVisibleComments.get(parentPosition).isExpanded()) {
|
if (mVisibleComments.get(parentPosition).isExpanded()) {
|
||||||
|
|
||||||
mVisibleComments.get(parentPosition).getChildren()
|
mVisibleComments.get(parentPosition).getChildren()
|
||||||
.remove(mVisibleComments.get(parentPosition).getChildren().size() - 1);
|
.remove(mVisibleComments.get(parentPosition).getChildren().size() - 1);
|
||||||
// mVisibleComments.get(parentPosition).removeMoreChildrenIds();
|
// mVisibleComments.get(parentPosition).removeMoreChildrenIds();
|
||||||
|
|
||||||
int placeholderPosition = findLoadMoreCommentsPlaceholderPosition(parentComment.getFullName(), commentPosition);
|
if (position != -1) {
|
||||||
if (placeholderPosition != -1) {
|
|
||||||
mVisibleComments.remove(placeholderPosition);
|
|
||||||
if (mIsSingleCommentThreadMode) {
|
if (mIsSingleCommentThreadMode) {
|
||||||
notifyItemRemoved(placeholderPosition + 1);
|
mVisibleComments.remove(position - 1);
|
||||||
|
notifyItemRemoved(position + 1);
|
||||||
} else {
|
} else {
|
||||||
notifyItemRemoved(placeholderPosition);
|
mVisibleComments.remove(position);
|
||||||
|
notifyItemRemoved(position);
|
||||||
}
|
}
|
||||||
List<Comment> trulyNewComments = new ArrayList<>();
|
List<Comment> trulyNewComments = new ArrayList<>();
|
||||||
for (int i = 0; i < expandedComments.size(); i++) {
|
for (int i = 0; i < expandedComments.size(); i++) {
|
||||||
@@ -686,11 +688,13 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
|
|||||||
trulyNewComments.add(expandedComments.get(i));
|
trulyNewComments.add(expandedComments.get(i));
|
||||||
loadedComments.add(expandedComments.get(i).getId());
|
loadedComments.add(expandedComments.get(i).getId());
|
||||||
}
|
}
|
||||||
mVisibleComments.addAll(placeholderPosition, trulyNewComments);
|
if (!trulyNewComments.isEmpty()) {
|
||||||
|
mVisibleComments.addAll(position, trulyNewComments);
|
||||||
if (mIsSingleCommentThreadMode) {
|
if (mIsSingleCommentThreadMode) {
|
||||||
notifyItemRangeInserted(placeholderPosition + 1, trulyNewComments.size());
|
notifyItemRangeInserted(position + 1, trulyNewComments.size());
|
||||||
} else {
|
} else {
|
||||||
notifyItemRangeInserted(placeholderPosition, trulyNewComments.size());
|
notifyItemRangeInserted(position, trulyNewComments.size());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -720,7 +724,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
|
|||||||
if (mVisibleComments.get(i).getFullName().equals(parentComment.getFullName())) {
|
if (mVisibleComments.get(i).getFullName().equals(parentComment.getFullName())) {
|
||||||
if (mVisibleComments.get(i).isExpanded()) {
|
if (mVisibleComments.get(i).isExpanded()) {
|
||||||
int placeholderPositionHint = i + mVisibleComments.get(i).getChildren().size();
|
int placeholderPositionHint = i + mVisibleComments.get(i).getChildren().size();
|
||||||
int placeholderPosition = findLoadMoreCommentsPlaceholderPosition(parentComment.getFullName(), placeholderPositionHint);
|
int placeholderPosition = findLoadMoreCommentsPlaceholderPosition(parentComment.getId(), placeholderPositionHint);
|
||||||
|
|
||||||
if (placeholderPosition != -1) {
|
if (placeholderPosition != -1) {
|
||||||
mVisibleComments.get(placeholderPosition).setLoadingMoreChildren(false);
|
mVisibleComments.get(placeholderPosition).setLoadingMoreChildren(false);
|
||||||
@@ -758,7 +762,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFetchCommentFailed() {
|
public void onFetchCommentFailed() {
|
||||||
int currentParentPosition = findCommentPosition(parentComment.getFullName(), parentPosition);
|
int currentParentPosition = findCommentPosition(parentComment.getId(), parentPosition);
|
||||||
if (currentParentPosition == -1) {
|
if (currentParentPosition == -1) {
|
||||||
// note: returning here is probably a mistake, because
|
// note: returning here is probably a mistake, because
|
||||||
// parent is just not visible, but it can still exist in the comments tree.
|
// parent is just not visible, but it can still exist in the comments tree.
|
||||||
@@ -768,7 +772,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
|
|||||||
|
|
||||||
if (currentParentComment.isExpanded()) {
|
if (currentParentComment.isExpanded()) {
|
||||||
int placeholderPositionHint = currentParentPosition + currentParentComment.getChildren().size();
|
int placeholderPositionHint = currentParentPosition + currentParentComment.getChildren().size();
|
||||||
int placeholderPosition = findLoadMoreCommentsPlaceholderPosition(parentComment.getFullName(), placeholderPositionHint);
|
int placeholderPosition = findLoadMoreCommentsPlaceholderPosition(parentComment.getId(), placeholderPositionHint);
|
||||||
|
|
||||||
if (placeholderPosition != -1) {
|
if (placeholderPosition != -1) {
|
||||||
mVisibleComments.get(placeholderPosition).setLoadingMoreChildren(false);
|
mVisibleComments.get(placeholderPosition).setLoadingMoreChildren(false);
|
||||||
@@ -817,7 +821,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
|
|||||||
*
|
*
|
||||||
* @return position of the placeholder or -1 if not found
|
* @return position of the placeholder or -1 if not found
|
||||||
*/
|
*/
|
||||||
private int findCommentPosition(String fullName, int positionHint) {
|
private int findCommentPosition(int fullName, int positionHint) {
|
||||||
return findCommentPosition(fullName, positionHint, Comment.NOT_PLACEHOLDER);
|
return findCommentPosition(fullName, positionHint, Comment.NOT_PLACEHOLDER);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -827,20 +831,20 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
|
|||||||
*
|
*
|
||||||
* @return position of the placeholder or -1 if not found
|
* @return position of the placeholder or -1 if not found
|
||||||
*/
|
*/
|
||||||
private int findLoadMoreCommentsPlaceholderPosition(String fullName, int positionHint) {
|
private int findLoadMoreCommentsPlaceholderPosition(int id, int positionHint) {
|
||||||
return findCommentPosition(fullName, positionHint, Comment.PLACEHOLDER_LOAD_MORE_COMMENTS);
|
return findCommentPosition(id, positionHint, Comment.PLACEHOLDER_LOAD_MORE_COMMENTS);
|
||||||
}
|
}
|
||||||
|
|
||||||
private int findCommentPosition(String fullName, int positionHint, int placeholderType) {
|
private int findCommentPosition(int id, int positionHint, int placeholderType) {
|
||||||
if (0 <= positionHint && positionHint < mVisibleComments.size()
|
if (0 <= positionHint && positionHint < mVisibleComments.size()
|
||||||
&& mVisibleComments.get(positionHint).getFullName().equals(fullName)
|
&& mVisibleComments.get(positionHint).getId() == id
|
||||||
&& mVisibleComments.get(positionHint).getPlaceholderType() == placeholderType) {
|
&& mVisibleComments.get(positionHint).getPlaceholderType() == placeholderType) {
|
||||||
return positionHint;
|
return positionHint;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < mVisibleComments.size(); i++) {
|
for (int i = 0; i < mVisibleComments.size(); i++) {
|
||||||
Comment comment = mVisibleComments.get(i);
|
Comment comment = mVisibleComments.get(i);
|
||||||
if (comment.getFullName().equals(fullName) && comment.getPlaceholderType() == placeholderType) {
|
if (comment.getId() == id && comment.getPlaceholderType() == placeholderType) {
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ import eu.toldi.infinityforlemmy.FetchGfycatOrRedgifsVideoLinks;
|
|||||||
import eu.toldi.infinityforlemmy.FetchStreamableVideo;
|
import eu.toldi.infinityforlemmy.FetchStreamableVideo;
|
||||||
import eu.toldi.infinityforlemmy.R;
|
import eu.toldi.infinityforlemmy.R;
|
||||||
import eu.toldi.infinityforlemmy.RedditDataRoomDatabase;
|
import eu.toldi.infinityforlemmy.RedditDataRoomDatabase;
|
||||||
|
import eu.toldi.infinityforlemmy.RetrofitHolder;
|
||||||
import eu.toldi.infinityforlemmy.SaveMemoryCenterInisdeDownsampleStrategy;
|
import eu.toldi.infinityforlemmy.SaveMemoryCenterInisdeDownsampleStrategy;
|
||||||
import eu.toldi.infinityforlemmy.SavePost;
|
import eu.toldi.infinityforlemmy.SavePost;
|
||||||
import eu.toldi.infinityforlemmy.SaveThing;
|
import eu.toldi.infinityforlemmy.SaveThing;
|
||||||
@@ -135,8 +136,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
|||||||
private BaseActivity mActivity;
|
private BaseActivity mActivity;
|
||||||
private ViewPostDetailFragment mFragment;
|
private ViewPostDetailFragment mFragment;
|
||||||
private Executor mExecutor;
|
private Executor mExecutor;
|
||||||
private Retrofit mRetrofit;
|
private RetrofitHolder mRetrofit;
|
||||||
private Retrofit mOauthRetrofit;
|
|
||||||
private Retrofit mGfycatRetrofit;
|
private Retrofit mGfycatRetrofit;
|
||||||
private Retrofit mRedgifsRetrofit;
|
private Retrofit mRedgifsRetrofit;
|
||||||
private final Provider<StreamableAPI> mStreamableApiProvider;
|
private final Provider<StreamableAPI> mStreamableApiProvider;
|
||||||
@@ -172,6 +172,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
|||||||
private boolean mHideUpvoteRatio;
|
private boolean mHideUpvoteRatio;
|
||||||
private boolean mHideTheNumberOfAwards;
|
private boolean mHideTheNumberOfAwards;
|
||||||
private boolean mHideSubredditAndUserPrefix;
|
private boolean mHideSubredditAndUserPrefix;
|
||||||
|
private boolean mShareOnLocalInstance;
|
||||||
|
|
||||||
private boolean mShowDisplayNames;
|
private boolean mShowDisplayNames;
|
||||||
private boolean mHideTheNumberOfVotes;
|
private boolean mHideTheNumberOfVotes;
|
||||||
@@ -223,7 +224,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
|||||||
|
|
||||||
public PostDetailRecyclerViewAdapter(BaseActivity activity, ViewPostDetailFragment fragment,
|
public PostDetailRecyclerViewAdapter(BaseActivity activity, ViewPostDetailFragment fragment,
|
||||||
Executor executor, CustomThemeWrapper customThemeWrapper,
|
Executor executor, CustomThemeWrapper customThemeWrapper,
|
||||||
Retrofit retrofit, Retrofit gfycatRetrofit,
|
RetrofitHolder retrofit, Retrofit gfycatRetrofit,
|
||||||
Retrofit redgifsRetrofit, Provider<StreamableAPI> streamableApiProvider,
|
Retrofit redgifsRetrofit, Provider<StreamableAPI> streamableApiProvider,
|
||||||
RedditDataRoomDatabase redditDataRoomDatabase, RequestManager glide,
|
RedditDataRoomDatabase redditDataRoomDatabase, RequestManager glide,
|
||||||
boolean separatePostAndComments, String accessToken,
|
boolean separatePostAndComments, String accessToken,
|
||||||
@@ -347,6 +348,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
|||||||
mHideUpvoteRatio = postDetailsSharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_UPVOTE_RATIO, false);
|
mHideUpvoteRatio = postDetailsSharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_UPVOTE_RATIO, false);
|
||||||
mHideTheNumberOfAwards = postDetailsSharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_THE_NUMBER_OF_AWARDS, false);
|
mHideTheNumberOfAwards = postDetailsSharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_THE_NUMBER_OF_AWARDS, false);
|
||||||
mHideSubredditAndUserPrefix = postDetailsSharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_SUBREDDIT_AND_USER_PREFIX, false);
|
mHideSubredditAndUserPrefix = postDetailsSharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_SUBREDDIT_AND_USER_PREFIX, false);
|
||||||
|
mShareOnLocalInstance = postDetailsSharedPreferences.getBoolean(SharedPreferencesUtils.SHARE_LINK_ON_LOCAL_INSTANCE, false);
|
||||||
mShowDisplayNames = postDetailsSharedPreferences.getBoolean(SharedPreferencesUtils.POST_DETAIL_DISPLAY_NAME_INSTEAD_OF_USERNAME, true);
|
mShowDisplayNames = postDetailsSharedPreferences.getBoolean(SharedPreferencesUtils.POST_DETAIL_DISPLAY_NAME_INSTEAD_OF_USERNAME, true);
|
||||||
mHideTheNumberOfVotes = postDetailsSharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_THE_NUMBER_OF_VOTES, false);
|
mHideTheNumberOfVotes = postDetailsSharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_THE_NUMBER_OF_VOTES, false);
|
||||||
mHideDownvotes = !currentAccountSharedPreferences.getBoolean(SharedPreferencesUtils.CAN_DOWNVOTE, true);
|
mHideDownvotes = !currentAccountSharedPreferences.getBoolean(SharedPreferencesUtils.CAN_DOWNVOTE, true);
|
||||||
@@ -485,7 +487,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
|||||||
((PostDetailBaseViewHolder) holder).mTitleTextView.setText(mPost.getTitle());
|
((PostDetailBaseViewHolder) holder).mTitleTextView.setText(mPost.getTitle());
|
||||||
if (mPost.getSubredditNamePrefixed().startsWith("u/")) {
|
if (mPost.getSubredditNamePrefixed().startsWith("u/")) {
|
||||||
if (mPost.getAuthorIconUrl() == null) {
|
if (mPost.getAuthorIconUrl() == null) {
|
||||||
LoadUserData.loadUserData(mExecutor, new Handler(), mRedditDataRoomDatabase,mPost.getAuthorNamePrefixed(), mOauthRetrofit, iconImageUrl -> {
|
LoadUserData.loadUserData(mExecutor, new Handler(), mRedditDataRoomDatabase, mPost.getAuthorNamePrefixed(), mRetrofit.getRetrofit(), iconImageUrl -> {
|
||||||
if (mActivity != null && getItemCount() > 0) {
|
if (mActivity != null && getItemCount() > 0) {
|
||||||
if (iconImageUrl == null || iconImageUrl.equals("")) {
|
if (iconImageUrl == null || iconImageUrl.equals("")) {
|
||||||
mGlide.load(R.drawable.subreddit_default_icon)
|
mGlide.load(R.drawable.subreddit_default_icon)
|
||||||
@@ -519,7 +521,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
|||||||
if (mPost.getSubredditIconUrl() == null) {
|
if (mPost.getSubredditIconUrl() == null) {
|
||||||
LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(),
|
LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(),
|
||||||
mRedditDataRoomDatabase, mPost.getSubredditNamePrefixed(),
|
mRedditDataRoomDatabase, mPost.getSubredditNamePrefixed(),
|
||||||
mAccessToken, mOauthRetrofit, mRetrofit, iconImageUrl -> {
|
mAccessToken, mRetrofit.getRetrofit(), iconImageUrl -> {
|
||||||
if (iconImageUrl == null || iconImageUrl.equals("")) {
|
if (iconImageUrl == null || iconImageUrl.equals("")) {
|
||||||
mGlide.load(R.drawable.subreddit_default_icon)
|
mGlide.load(R.drawable.subreddit_default_icon)
|
||||||
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))
|
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))
|
||||||
@@ -1385,7 +1387,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
|||||||
|
|
||||||
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
|
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
|
||||||
|
|
||||||
VoteThing.votePost(mActivity, mRetrofit, mAccessToken, new VoteThing.VoteThingWithoutPositionListener() {
|
VoteThing.votePost(mActivity, mRetrofit.getRetrofit(), mAccessToken, new VoteThing.VoteThingWithoutPositionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onVoteThingSuccess() {
|
public void onVoteThingSuccess() {
|
||||||
if (newVoteType == Integer.parseInt(APIUtils.DIR_UPVOTE)) {
|
if (newVoteType == Integer.parseInt(APIUtils.DIR_UPVOTE)) {
|
||||||
@@ -1491,13 +1493,13 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
|||||||
|
|
||||||
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
|
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
|
||||||
|
|
||||||
VoteThing.votePost(mActivity, mRetrofit, mAccessToken, new VoteThing.VoteThingWithoutPositionListener() {
|
VoteThing.votePost(mActivity, mRetrofit.getRetrofit(), mAccessToken, new VoteThing.VoteThingWithoutPositionListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onVoteThingSuccess() {
|
public void onVoteThingSuccess() {
|
||||||
if (newVoteType == Integer.parseInt(APIUtils.DIR_DOWNVOTE)) {
|
if (newVoteType == Integer.parseInt(APIUtils.DIR_DOWNVOTE)) {
|
||||||
mPost.setVoteType(-1);
|
mPost.setVoteType(-1);
|
||||||
mDownvoteButton.setColorFilter(mDownvotedColor, PorterDuff.Mode.SRC_IN);
|
mDownvoteButton.setColorFilter(mDownvotedColor, PorterDuff.Mode.SRC_IN);
|
||||||
if(mSeperateUpvoteAndDownvote) {
|
if (mSeperateUpvoteAndDownvote) {
|
||||||
mDownvoteTextView.setTextColor(mDownvotedColor);
|
mDownvoteTextView.setTextColor(mDownvotedColor);
|
||||||
} else {
|
} else {
|
||||||
mScoreTextView.setTextColor(mDownvotedColor);
|
mScoreTextView.setTextColor(mDownvotedColor);
|
||||||
@@ -1587,7 +1589,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
|||||||
SavePost savePost = new SavePost();
|
SavePost savePost = new SavePost();
|
||||||
if (mPost.isSaved()) {
|
if (mPost.isSaved()) {
|
||||||
mSaveButton.setImageResource(R.drawable.ic_bookmark_border_grey_24dp);
|
mSaveButton.setImageResource(R.drawable.ic_bookmark_border_grey_24dp);
|
||||||
savePost.unsaveThing(mRetrofit, mAccessToken, mPost.getId(),
|
savePost.unsaveThing(mRetrofit.getRetrofit(), mAccessToken, mPost.getId(),
|
||||||
new SaveThing.SaveThingListener() {
|
new SaveThing.SaveThingListener() {
|
||||||
@Override
|
@Override
|
||||||
public void success() {
|
public void success() {
|
||||||
@@ -1607,7 +1609,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
mSaveButton.setImageResource(R.drawable.ic_bookmark_grey_24dp);
|
mSaveButton.setImageResource(R.drawable.ic_bookmark_grey_24dp);
|
||||||
savePost.saveThing(mRetrofit, mAccessToken, mPost.getId(),
|
savePost.saveThing(mRetrofit.getRetrofit(), mAccessToken, mPost.getId(),
|
||||||
new SaveThing.SaveThingListener() {
|
new SaveThing.SaveThingListener() {
|
||||||
@Override
|
@Override
|
||||||
public void success() {
|
public void success() {
|
||||||
@@ -1629,8 +1631,9 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
|||||||
});
|
});
|
||||||
|
|
||||||
mShareButton.setOnClickListener(view -> {
|
mShareButton.setOnClickListener(view -> {
|
||||||
|
String link = (mShareOnLocalInstance) ? mRetrofit.getBaseURL() + "/post/" + mPost.getId() : mPost.getPermalink();
|
||||||
Bundle bundle = new Bundle();
|
Bundle bundle = new Bundle();
|
||||||
bundle.putString(ShareLinkBottomSheetFragment.EXTRA_POST_LINK, mPost.getPermalink());
|
bundle.putString(ShareLinkBottomSheetFragment.EXTRA_POST_LINK, link);
|
||||||
if (mPost.getPostType() != Post.TEXT_TYPE) {
|
if (mPost.getPostType() != Post.TEXT_TYPE) {
|
||||||
bundle.putInt(ShareLinkBottomSheetFragment.EXTRA_MEDIA_TYPE, mPost.getPostType());
|
bundle.putInt(ShareLinkBottomSheetFragment.EXTRA_MEDIA_TYPE, mPost.getPostType());
|
||||||
switch (mPost.getPostType()) {
|
switch (mPost.getPostType()) {
|
||||||
@@ -1651,7 +1654,8 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
|||||||
});
|
});
|
||||||
|
|
||||||
mShareButton.setOnLongClickListener(view -> {
|
mShareButton.setOnLongClickListener(view -> {
|
||||||
mActivity.copyLink(mPost.getPermalink());
|
String link = (mShareOnLocalInstance) ? mRetrofit.getBaseURL() + "/post/" + mPost.getId() : mPost.getPermalink();
|
||||||
|
mActivity.copyLink(link);
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ import eu.toldi.infinityforlemmy.FetchGfycatOrRedgifsVideoLinks;
|
|||||||
import eu.toldi.infinityforlemmy.FetchStreamableVideo;
|
import eu.toldi.infinityforlemmy.FetchStreamableVideo;
|
||||||
import eu.toldi.infinityforlemmy.MarkPostAsReadInterface;
|
import eu.toldi.infinityforlemmy.MarkPostAsReadInterface;
|
||||||
import eu.toldi.infinityforlemmy.R;
|
import eu.toldi.infinityforlemmy.R;
|
||||||
|
import eu.toldi.infinityforlemmy.RetrofitHolder;
|
||||||
import eu.toldi.infinityforlemmy.SaveMemoryCenterInisdeDownsampleStrategy;
|
import eu.toldi.infinityforlemmy.SaveMemoryCenterInisdeDownsampleStrategy;
|
||||||
import eu.toldi.infinityforlemmy.SavePost;
|
import eu.toldi.infinityforlemmy.SavePost;
|
||||||
import eu.toldi.infinityforlemmy.SaveThing;
|
import eu.toldi.infinityforlemmy.SaveThing;
|
||||||
@@ -150,7 +151,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
|||||||
private SharedPreferences mSharedPreferences;
|
private SharedPreferences mSharedPreferences;
|
||||||
private SharedPreferences mCurrentAccountSharedPreferences;
|
private SharedPreferences mCurrentAccountSharedPreferences;
|
||||||
private Executor mExecutor;
|
private Executor mExecutor;
|
||||||
private Retrofit retrofit;
|
private RetrofitHolder retrofit;
|
||||||
private Retrofit mGfycatRetrofit;
|
private Retrofit mGfycatRetrofit;
|
||||||
private Retrofit mRedgifsRetrofit;
|
private Retrofit mRedgifsRetrofit;
|
||||||
private Provider<StreamableAPI> mStreamableApiProvider;
|
private Provider<StreamableAPI> mStreamableApiProvider;
|
||||||
@@ -230,6 +231,8 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
|||||||
private boolean mShowDisplayNames;
|
private boolean mShowDisplayNames;
|
||||||
private boolean mHideTheNumberOfVotes;
|
private boolean mHideTheNumberOfVotes;
|
||||||
|
|
||||||
|
private boolean mShareLinkOnLocalInstance;
|
||||||
|
|
||||||
private boolean mSeparateUpandDownVotes;
|
private boolean mSeparateUpandDownVotes;
|
||||||
|
|
||||||
private boolean mHideDownvotes;
|
private boolean mHideDownvotes;
|
||||||
@@ -244,7 +247,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
|||||||
private boolean canPlayVideo = true;
|
private boolean canPlayVideo = true;
|
||||||
private RecyclerView.RecycledViewPool mGalleryRecycledViewPool;
|
private RecyclerView.RecycledViewPool mGalleryRecycledViewPool;
|
||||||
|
|
||||||
public PostRecyclerViewAdapter(BaseActivity activity, PostFragment fragment, Executor executor, Retrofit oauthRetrofit,
|
public PostRecyclerViewAdapter(BaseActivity activity, PostFragment fragment, Executor executor, RetrofitHolder retrofit,
|
||||||
Retrofit gfycatRetrofit, Retrofit redgifsRetrofit, Provider<StreamableAPI> streamableApiProvider,
|
Retrofit gfycatRetrofit, Retrofit redgifsRetrofit, Provider<StreamableAPI> streamableApiProvider,
|
||||||
CustomThemeWrapper customThemeWrapper, Locale locale,
|
CustomThemeWrapper customThemeWrapper, Locale locale,
|
||||||
String accessToken, String accountName, int postType, int postLayout, boolean displaySubredditName,
|
String accessToken, String accountName, int postType, int postLayout, boolean displaySubredditName,
|
||||||
@@ -259,7 +262,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
|||||||
mSharedPreferences = sharedPreferences;
|
mSharedPreferences = sharedPreferences;
|
||||||
mCurrentAccountSharedPreferences = currentAccountSharedPreferences;
|
mCurrentAccountSharedPreferences = currentAccountSharedPreferences;
|
||||||
mExecutor = executor;
|
mExecutor = executor;
|
||||||
retrofit = oauthRetrofit;
|
this.retrofit = retrofit;
|
||||||
mGfycatRetrofit = gfycatRetrofit;
|
mGfycatRetrofit = gfycatRetrofit;
|
||||||
mRedgifsRetrofit = redgifsRetrofit;
|
mRedgifsRetrofit = redgifsRetrofit;
|
||||||
mStreamableApiProvider = streamableApiProvider;
|
mStreamableApiProvider = streamableApiProvider;
|
||||||
@@ -316,6 +319,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
|||||||
mHideSubredditAndUserPrefix = sharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_SUBREDDIT_AND_USER_PREFIX, false);
|
mHideSubredditAndUserPrefix = sharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_SUBREDDIT_AND_USER_PREFIX, false);
|
||||||
mShowDisplayNames = sharedPreferences.getBoolean(SharedPreferencesUtils.POST_DISPLAY_NAME_INSTEAD_OF_USERNAME, true);
|
mShowDisplayNames = sharedPreferences.getBoolean(SharedPreferencesUtils.POST_DISPLAY_NAME_INSTEAD_OF_USERNAME, true);
|
||||||
mHideTheNumberOfVotes = sharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_THE_NUMBER_OF_VOTES, false);
|
mHideTheNumberOfVotes = sharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_THE_NUMBER_OF_VOTES, false);
|
||||||
|
mShareLinkOnLocalInstance = sharedPreferences.getBoolean(SharedPreferencesUtils.SHARE_LINK_ON_LOCAL_INSTANCE, false);
|
||||||
mHideDownvotes = !currentAccountSharedPreferences.getBoolean(SharedPreferencesUtils.CAN_DOWNVOTE, true);
|
mHideDownvotes = !currentAccountSharedPreferences.getBoolean(SharedPreferencesUtils.CAN_DOWNVOTE, true);
|
||||||
mSeparateUpandDownVotes = sharedPreferences.getBoolean(SharedPreferencesUtils.POST_SEPARATE_UP_AND_DOWN_VOTES, true) && !mHideDownvotes;
|
mSeparateUpandDownVotes = sharedPreferences.getBoolean(SharedPreferencesUtils.POST_SEPARATE_UP_AND_DOWN_VOTES, true) && !mHideDownvotes;
|
||||||
mHideTheNumberOfComments = sharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_THE_NUMBER_OF_COMMENTS, false);
|
mHideTheNumberOfComments = sharedPreferences.getBoolean(SharedPreferencesUtils.HIDE_THE_NUMBER_OF_COMMENTS, false);
|
||||||
@@ -1893,8 +1897,9 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void shareLink(Post post) {
|
private void shareLink(Post post) {
|
||||||
|
String link = (mShareLinkOnLocalInstance) ? retrofit.getBaseURL() + "/post/" + post.getId() : post.getPermalink();
|
||||||
Bundle bundle = new Bundle();
|
Bundle bundle = new Bundle();
|
||||||
bundle.putString(ShareLinkBottomSheetFragment.EXTRA_POST_LINK, post.getPermalink());
|
bundle.putString(ShareLinkBottomSheetFragment.EXTRA_POST_LINK, link);
|
||||||
if (post.getPostType() != Post.TEXT_TYPE) {
|
if (post.getPostType() != Post.TEXT_TYPE) {
|
||||||
bundle.putInt(ShareLinkBottomSheetFragment.EXTRA_MEDIA_TYPE, post.getPostType());
|
bundle.putInt(ShareLinkBottomSheetFragment.EXTRA_MEDIA_TYPE, post.getPostType());
|
||||||
switch (post.getPostType()) {
|
switch (post.getPostType()) {
|
||||||
@@ -2666,7 +2671,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VoteThing.votePost(mActivity, retrofit, mAccessToken, new VoteThing.VoteThingListener() {
|
VoteThing.votePost(mActivity, retrofit.getRetrofit(), mAccessToken, new VoteThing.VoteThingListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onVoteThingSuccess(int position1) {
|
public void onVoteThingSuccess(int position1) {
|
||||||
int currentPosition = getBindingAdapterPosition();
|
int currentPosition = getBindingAdapterPosition();
|
||||||
@@ -2782,7 +2787,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VoteThing.votePost(mActivity, retrofit, mAccessToken, new VoteThing.VoteThingListener() {
|
VoteThing.votePost(mActivity, retrofit.getRetrofit(), mAccessToken, new VoteThing.VoteThingListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onVoteThingSuccess(int position1) {
|
public void onVoteThingSuccess(int position1) {
|
||||||
int currentPosition = getBindingAdapterPosition();
|
int currentPosition = getBindingAdapterPosition();
|
||||||
@@ -2790,9 +2795,9 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
|||||||
post.setVoteType(-1);
|
post.setVoteType(-1);
|
||||||
if (currentPosition == position) {
|
if (currentPosition == position) {
|
||||||
downvoteButton.setColorFilter(mDownvotedColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
downvoteButton.setColorFilter(mDownvotedColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||||
if(mSeparateUpandDownVotes){
|
if (mSeparateUpandDownVotes) {
|
||||||
downvoteTextView.setTextColor(mDownvotedColor);
|
downvoteTextView.setTextColor(mDownvotedColor);
|
||||||
}else {
|
} else {
|
||||||
scoreTextView.setTextColor(mDownvotedColor);
|
scoreTextView.setTextColor(mDownvotedColor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2855,7 +2860,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
|||||||
SavePost savePost = new SavePost();
|
SavePost savePost = new SavePost();
|
||||||
if (post.isSaved()) {
|
if (post.isSaved()) {
|
||||||
saveButton.setImageResource(R.drawable.ic_bookmark_border_grey_24dp);
|
saveButton.setImageResource(R.drawable.ic_bookmark_border_grey_24dp);
|
||||||
savePost.unsaveThing(retrofit, mAccessToken, post.getId(),
|
savePost.unsaveThing(retrofit.getRetrofit(), mAccessToken, post.getId(),
|
||||||
new SaveThing.SaveThingListener() {
|
new SaveThing.SaveThingListener() {
|
||||||
@Override
|
@Override
|
||||||
public void success() {
|
public void success() {
|
||||||
@@ -2879,7 +2884,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
saveButton.setImageResource(R.drawable.ic_bookmark_grey_24dp);
|
saveButton.setImageResource(R.drawable.ic_bookmark_grey_24dp);
|
||||||
savePost.saveThing(retrofit, mAccessToken, post.getId(),
|
savePost.saveThing(retrofit.getRetrofit(), mAccessToken, post.getId(),
|
||||||
new SaveThing.SaveThingListener() {
|
new SaveThing.SaveThingListener() {
|
||||||
@Override
|
@Override
|
||||||
public void success() {
|
public void success() {
|
||||||
@@ -2923,7 +2928,8 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
|||||||
}
|
}
|
||||||
Post post = getItem(position);
|
Post post = getItem(position);
|
||||||
if (post != null) {
|
if (post != null) {
|
||||||
mActivity.copyLink(post.getPermalink());
|
String link = (mShareLinkOnLocalInstance) ? retrofit.getBaseURL() + "/post/" + post.getId() : post.getPermalink();
|
||||||
|
mActivity.copyLink(link);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@@ -4118,7 +4124,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
|||||||
scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, post.getScore() + post.getVoteType()));
|
scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, post.getScore() + post.getVoteType()));
|
||||||
}
|
}
|
||||||
|
|
||||||
VoteThing.votePost(mActivity, retrofit, mAccessToken, new VoteThing.VoteThingListener() {
|
VoteThing.votePost(mActivity, retrofit.getRetrofit(), mAccessToken, new VoteThing.VoteThingListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onVoteThingSuccess(int position1) {
|
public void onVoteThingSuccess(int position1) {
|
||||||
int currentPosition = getBindingAdapterPosition();
|
int currentPosition = getBindingAdapterPosition();
|
||||||
@@ -4224,7 +4230,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VoteThing.votePost(mActivity, retrofit, mAccessToken, new VoteThing.VoteThingListener() {
|
VoteThing.votePost(mActivity, retrofit.getRetrofit(), mAccessToken, new VoteThing.VoteThingListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onVoteThingSuccess(int position1) {
|
public void onVoteThingSuccess(int position1) {
|
||||||
int currentPosition = getBindingAdapterPosition();
|
int currentPosition = getBindingAdapterPosition();
|
||||||
@@ -4232,7 +4238,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
|||||||
post.setVoteType(-1);
|
post.setVoteType(-1);
|
||||||
if (currentPosition == position) {
|
if (currentPosition == position) {
|
||||||
downvoteButton.setColorFilter(mDownvotedColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
downvoteButton.setColorFilter(mDownvotedColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||||
if(mSeparateUpandDownVotes) {
|
if (mSeparateUpandDownVotes) {
|
||||||
downvoteTextView.setTextColor(mDownvotedColor);
|
downvoteTextView.setTextColor(mDownvotedColor);
|
||||||
} else {
|
} else {
|
||||||
scoreTextView.setTextColor(mDownvotedColor);
|
scoreTextView.setTextColor(mDownvotedColor);
|
||||||
@@ -4297,7 +4303,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
|||||||
SavePost postSave = new SavePost();
|
SavePost postSave = new SavePost();
|
||||||
if (post.isSaved()) {
|
if (post.isSaved()) {
|
||||||
saveButton.setImageResource(R.drawable.ic_bookmark_border_grey_24dp);
|
saveButton.setImageResource(R.drawable.ic_bookmark_border_grey_24dp);
|
||||||
postSave.unsaveThing(retrofit, mAccessToken, post.getId(),
|
postSave.unsaveThing(retrofit.getRetrofit(), mAccessToken, post.getId(),
|
||||||
new SaveThing.SaveThingListener() {
|
new SaveThing.SaveThingListener() {
|
||||||
@Override
|
@Override
|
||||||
public void success() {
|
public void success() {
|
||||||
@@ -4321,7 +4327,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
saveButton.setImageResource(R.drawable.ic_bookmark_grey_24dp);
|
saveButton.setImageResource(R.drawable.ic_bookmark_grey_24dp);
|
||||||
postSave.saveThing(retrofit, mAccessToken, post.getId(),
|
postSave.saveThing(retrofit.getRetrofit(), mAccessToken, post.getId(),
|
||||||
new SaveThing.SaveThingListener() {
|
new SaveThing.SaveThingListener() {
|
||||||
@Override
|
@Override
|
||||||
public void success() {
|
public void success() {
|
||||||
@@ -4365,7 +4371,8 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
|||||||
}
|
}
|
||||||
Post post = getItem(position);
|
Post post = getItem(position);
|
||||||
if (post != null) {
|
if (post != null) {
|
||||||
mActivity.copyLink(post.getPermalink());
|
String link = (mShareLinkOnLocalInstance) ? retrofit.getBaseURL() + "/post/" + post.getId() : post.getPermalink();
|
||||||
|
mActivity.copyLink(link);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -87,9 +87,9 @@ public class SubscribedSubredditsRecyclerViewAdapter extends RecyclerView.Adapte
|
|||||||
return VIEW_TYPE_SUBREDDIT;
|
return VIEW_TYPE_SUBREDDIT;
|
||||||
} else if (position == 1) {
|
} else if (position == 1) {
|
||||||
return VIEW_TYPE_FAVORITE_SUBREDDIT_DIVIDER;
|
return VIEW_TYPE_FAVORITE_SUBREDDIT_DIVIDER;
|
||||||
} else if (position == mFavoriteSubscribedSubredditData.size() + 2) {
|
} else if (position == mFavoriteSubscribedSubredditData.size() + 1) {
|
||||||
return VIEW_TYPE_SUBREDDIT_DIVIDER;
|
return VIEW_TYPE_SUBREDDIT_DIVIDER;
|
||||||
} else if (position <= mFavoriteSubscribedSubredditData.size() + 1) {
|
} else if (position < mFavoriteSubscribedSubredditData.size() + 1) {
|
||||||
return VIEW_TYPE_FAVORITE_SUBREDDIT;
|
return VIEW_TYPE_FAVORITE_SUBREDDIT;
|
||||||
} else {
|
} else {
|
||||||
return VIEW_TYPE_SUBREDDIT;
|
return VIEW_TYPE_SUBREDDIT;
|
||||||
@@ -98,12 +98,10 @@ public class SubscribedSubredditsRecyclerViewAdapter extends RecyclerView.Adapte
|
|||||||
if (position == 0) {
|
if (position == 0) {
|
||||||
return VIEW_TYPE_SUBREDDIT;
|
return VIEW_TYPE_SUBREDDIT;
|
||||||
} else if (position == 1) {
|
} else if (position == 1) {
|
||||||
return VIEW_TYPE_SUBREDDIT;
|
|
||||||
} else if (position == 2) {
|
|
||||||
return VIEW_TYPE_FAVORITE_SUBREDDIT_DIVIDER;
|
return VIEW_TYPE_FAVORITE_SUBREDDIT_DIVIDER;
|
||||||
} else if (position == mFavoriteSubscribedSubredditData.size() + 3) {
|
} else if (position == mFavoriteSubscribedSubredditData.size() + 2) {
|
||||||
return VIEW_TYPE_SUBREDDIT_DIVIDER;
|
return VIEW_TYPE_SUBREDDIT_DIVIDER;
|
||||||
} else if (position <= mFavoriteSubscribedSubredditData.size() + 2) {
|
} else if (position < mFavoriteSubscribedSubredditData.size() + 2) {
|
||||||
return VIEW_TYPE_FAVORITE_SUBREDDIT;
|
return VIEW_TYPE_FAVORITE_SUBREDDIT;
|
||||||
} else {
|
} else {
|
||||||
return VIEW_TYPE_SUBREDDIT;
|
return VIEW_TYPE_SUBREDDIT;
|
||||||
@@ -155,8 +153,22 @@ public class SubscribedSubredditsRecyclerViewAdapter extends RecyclerView.Adapte
|
|||||||
viewHolder.itemView.setOnClickListener(view -> itemClickListener.onClick(null));
|
viewHolder.itemView.setOnClickListener(view -> itemClickListener.onClick(null));
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
int offset = hasClearSelectionRow ? 1 : 0;
|
int offset;
|
||||||
SubscribedSubredditData communityData = mSubscribedSubredditData.get(viewHolder.getBindingAdapterPosition() - offset);
|
if (itemClickListener != null) {
|
||||||
|
if (hasClearSelectionRow) {
|
||||||
|
offset = (mFavoriteSubscribedSubredditData != null && mFavoriteSubscribedSubredditData.size() > 0) ?
|
||||||
|
mFavoriteSubscribedSubredditData.size() + 3 : 1;
|
||||||
|
} else {
|
||||||
|
offset = (mFavoriteSubscribedSubredditData != null && mFavoriteSubscribedSubredditData.size() > 0) ?
|
||||||
|
mFavoriteSubscribedSubredditData.size() + 3 : 1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
offset = (mFavoriteSubscribedSubredditData != null && mFavoriteSubscribedSubredditData.size() > 0) ?
|
||||||
|
mFavoriteSubscribedSubredditData.size() + 2 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
name = mSubscribedSubredditData.get(viewHolder.getBindingAdapterPosition() - offset).getName();
|
name = mSubscribedSubredditData.get(viewHolder.getBindingAdapterPosition() - offset).getName();
|
||||||
fullname = mSubscribedSubredditData.get(viewHolder.getBindingAdapterPosition() - offset).getQualified_name();
|
fullname = mSubscribedSubredditData.get(viewHolder.getBindingAdapterPosition() - offset).getQualified_name();
|
||||||
iconUrl = mSubscribedSubredditData.get(viewHolder.getBindingAdapterPosition() - offset).getIconUrl();
|
iconUrl = mSubscribedSubredditData.get(viewHolder.getBindingAdapterPosition() - offset).getIconUrl();
|
||||||
@@ -181,6 +193,7 @@ public class SubscribedSubredditsRecyclerViewAdapter extends RecyclerView.Adapte
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (itemClickListener != null) {
|
if (itemClickListener != null) {
|
||||||
|
SubscribedSubredditData communityData = mSubscribedSubredditData.get(viewHolder.getBindingAdapterPosition() - offset);
|
||||||
viewHolder.itemView.setOnClickListener(view -> itemClickListener.onClick(communityData));
|
viewHolder.itemView.setOnClickListener(view -> itemClickListener.onClick(communityData));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -213,7 +226,7 @@ public class SubscribedSubredditsRecyclerViewAdapter extends RecyclerView.Adapte
|
|||||||
int offset;
|
int offset;
|
||||||
if (itemClickListener != null) {
|
if (itemClickListener != null) {
|
||||||
if (hasClearSelectionRow) {
|
if (hasClearSelectionRow) {
|
||||||
offset = 3;
|
offset = 2;
|
||||||
} else {
|
} else {
|
||||||
offset = 2;
|
offset = 2;
|
||||||
}
|
}
|
||||||
@@ -273,9 +286,17 @@ public class SubscribedSubredditsRecyclerViewAdapter extends RecyclerView.Adapte
|
|||||||
@Override
|
@Override
|
||||||
public int getItemCount() {
|
public int getItemCount() {
|
||||||
if (mSubscribedSubredditData != null) {
|
if (mSubscribedSubredditData != null) {
|
||||||
|
if (mFavoriteSubscribedSubredditData != null && mFavoriteSubscribedSubredditData.size() > 0) {
|
||||||
|
if (itemClickListener != null) {
|
||||||
|
return mSubscribedSubredditData.size() > 0 ?
|
||||||
|
mFavoriteSubscribedSubredditData.size() + mSubscribedSubredditData.size() + 3 : 0;
|
||||||
|
}
|
||||||
|
return mSubscribedSubredditData.size() > 0 ?
|
||||||
|
mFavoriteSubscribedSubredditData.size() + mSubscribedSubredditData.size() + 2 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (itemClickListener != null) {
|
if (itemClickListener != null) {
|
||||||
return mSubscribedSubredditData.size() > 0 ? mSubscribedSubredditData.size() + ((hasClearSelectionRow) ? 1 : 0) : 0;
|
return mSubscribedSubredditData.size() > 0 ? mSubscribedSubredditData.size() + 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return mSubscribedSubredditData.size();
|
return mSubscribedSubredditData.size();
|
||||||
@@ -283,6 +304,7 @@ public class SubscribedSubredditsRecyclerViewAdapter extends RecyclerView.Adapte
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onViewRecycled(@NonNull RecyclerView.ViewHolder holder) {
|
public void onViewRecycled(@NonNull RecyclerView.ViewHolder holder) {
|
||||||
if(holder instanceof SubredditViewHolder) {
|
if(holder instanceof SubredditViewHolder) {
|
||||||
@@ -324,7 +346,7 @@ public class SubscribedSubredditsRecyclerViewAdapter extends RecyclerView.Adapte
|
|||||||
if (itemClickListener != null) {
|
if (itemClickListener != null) {
|
||||||
if (hasClearSelectionRow) {
|
if (hasClearSelectionRow) {
|
||||||
offset = (mFavoriteSubscribedSubredditData != null && mFavoriteSubscribedSubredditData.size() > 0) ?
|
offset = (mFavoriteSubscribedSubredditData != null && mFavoriteSubscribedSubredditData.size() > 0) ?
|
||||||
mFavoriteSubscribedSubredditData.size() + 4 : 0;
|
mFavoriteSubscribedSubredditData.size() + 3 : 0;
|
||||||
} else {
|
} else {
|
||||||
offset = (mFavoriteSubscribedSubredditData != null && mFavoriteSubscribedSubredditData.size() > 0) ?
|
offset = (mFavoriteSubscribedSubredditData != null && mFavoriteSubscribedSubredditData.size() > 0) ?
|
||||||
mFavoriteSubscribedSubredditData.size() + 3 : 0;
|
mFavoriteSubscribedSubredditData.size() + 3 : 0;
|
||||||
@@ -340,7 +362,7 @@ public class SubscribedSubredditsRecyclerViewAdapter extends RecyclerView.Adapte
|
|||||||
int offset;
|
int offset;
|
||||||
if (itemClickListener != null) {
|
if (itemClickListener != null) {
|
||||||
if (hasClearSelectionRow) {
|
if (hasClearSelectionRow) {
|
||||||
offset = 3;
|
offset = 2;
|
||||||
} else {
|
} else {
|
||||||
offset = 2;
|
offset = 2;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -118,25 +118,20 @@ public class InsertSubscribedThings {
|
|||||||
(List<SubscribedSubredditData> newSubscribedSubreddits,
|
(List<SubscribedSubredditData> newSubscribedSubreddits,
|
||||||
List<SubscribedSubredditData> oldSubscribedSubreddits,
|
List<SubscribedSubredditData> oldSubscribedSubreddits,
|
||||||
List<String> unsubscribedSubredditNames) {
|
List<String> unsubscribedSubredditNames) {
|
||||||
int newIndex = 0;
|
List<String> oldSubredditNames = new ArrayList<>();
|
||||||
for (int oldIndex = 0; oldIndex < oldSubscribedSubreddits.size(); oldIndex++) {
|
for (SubscribedSubredditData subredditData : oldSubscribedSubreddits) {
|
||||||
if (newIndex >= newSubscribedSubreddits.size()) {
|
oldSubredditNames.add(subredditData.getQualified_name());
|
||||||
for (; oldIndex < oldSubscribedSubreddits.size(); oldIndex++) {
|
|
||||||
unsubscribedSubredditNames.add(oldSubscribedSubreddits.get(oldIndex).getQualified_name());
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SubscribedSubredditData old = oldSubscribedSubreddits.get(oldIndex);
|
List<String> newSubredditNames = new ArrayList<>();
|
||||||
for (; newIndex < newSubscribedSubreddits.size(); newIndex++) {
|
for (SubscribedSubredditData subredditData : newSubscribedSubreddits) {
|
||||||
if (newSubscribedSubreddits.get(newIndex).getQualified_name().compareToIgnoreCase(old.getQualified_name()) == 0) {
|
newSubredditNames.add(subredditData.getQualified_name());
|
||||||
newIndex++;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (newSubscribedSubreddits.get(newIndex).getQualified_name().compareToIgnoreCase(old.getQualified_name()) > 0) {
|
|
||||||
unsubscribedSubredditNames.add(old.getQualified_name());
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
for (String subredditName : oldSubredditNames) {
|
||||||
|
if (!newSubredditNames.contains(subredditName)) {
|
||||||
|
unsubscribedSubredditNames.add(subredditName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import retrofit2.Retrofit;
|
|||||||
public class LoadSubredditIcon {
|
public class LoadSubredditIcon {
|
||||||
|
|
||||||
public static void loadSubredditIcon(Executor executor, Handler handler, RedditDataRoomDatabase redditDataRoomDatabase,
|
public static void loadSubredditIcon(Executor executor, Handler handler, RedditDataRoomDatabase redditDataRoomDatabase,
|
||||||
String subredditName, String accessToken, Retrofit oauthRetrofit, Retrofit retrofit,
|
String subredditName, String accessToken, Retrofit retrofit,
|
||||||
LoadSubredditIconAsyncTaskListener loadSubredditIconAsyncTaskListener) {
|
LoadSubredditIconAsyncTaskListener loadSubredditIconAsyncTaskListener) {
|
||||||
executor.execute(() -> {
|
executor.execute(() -> {
|
||||||
SubredditDao subredditDao = redditDataRoomDatabase.subredditDao();
|
SubredditDao subredditDao = redditDataRoomDatabase.subredditDao();
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ package eu.toldi.infinityforlemmy.bottomsheetfragments;
|
|||||||
import android.content.ActivityNotFoundException;
|
import android.content.ActivityNotFoundException;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -23,6 +24,7 @@ import androidx.fragment.app.Fragment;
|
|||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
import javax.inject.Named;
|
||||||
|
|
||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
@@ -37,6 +39,7 @@ import eu.toldi.infinityforlemmy.comment.Comment;
|
|||||||
import eu.toldi.infinityforlemmy.comment.LemmyCommentAPI;
|
import eu.toldi.infinityforlemmy.comment.LemmyCommentAPI;
|
||||||
import eu.toldi.infinityforlemmy.customtheme.CustomThemeWrapper;
|
import eu.toldi.infinityforlemmy.customtheme.CustomThemeWrapper;
|
||||||
import eu.toldi.infinityforlemmy.customviews.LandscapeExpandedRoundedBottomSheetDialogFragment;
|
import eu.toldi.infinityforlemmy.customviews.LandscapeExpandedRoundedBottomSheetDialogFragment;
|
||||||
|
import eu.toldi.infinityforlemmy.utils.SharedPreferencesUtils;
|
||||||
import eu.toldi.infinityforlemmy.utils.Utils;
|
import eu.toldi.infinityforlemmy.utils.Utils;
|
||||||
|
|
||||||
|
|
||||||
@@ -72,8 +75,14 @@ public class CommentMoreBottomSheetFragment extends LandscapeExpandedRoundedBott
|
|||||||
@Inject
|
@Inject
|
||||||
CustomThemeWrapper mCustomThemeWrapper;
|
CustomThemeWrapper mCustomThemeWrapper;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
@Named("default")
|
||||||
|
SharedPreferences mSharedPreferences;
|
||||||
|
|
||||||
private BaseActivity activity;
|
private BaseActivity activity;
|
||||||
|
|
||||||
|
private boolean mShareLinksOnLocalInstance;
|
||||||
|
|
||||||
public CommentMoreBottomSheetFragment() {
|
public CommentMoreBottomSheetFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
}
|
}
|
||||||
@@ -103,6 +112,7 @@ public class CommentMoreBottomSheetFragment extends LandscapeExpandedRoundedBott
|
|||||||
String accessToken = bundle.getString(EXTRA_ACCESS_TOKEN);
|
String accessToken = bundle.getString(EXTRA_ACCESS_TOKEN);
|
||||||
boolean editAndDeleteAvailable = bundle.getBoolean(EXTRA_EDIT_AND_DELETE_AVAILABLE, false);
|
boolean editAndDeleteAvailable = bundle.getBoolean(EXTRA_EDIT_AND_DELETE_AVAILABLE, false);
|
||||||
boolean showReplyAndSaveOption = bundle.getBoolean(EXTRA_SHOW_REPLY_AND_SAVE_OPTION, false);
|
boolean showReplyAndSaveOption = bundle.getBoolean(EXTRA_SHOW_REPLY_AND_SAVE_OPTION, false);
|
||||||
|
mShareLinksOnLocalInstance = mSharedPreferences.getBoolean(SharedPreferencesUtils.SHARE_LINK_ON_LOCAL_INSTANCE, false);
|
||||||
|
|
||||||
if (accessToken != null && !accessToken.equals("")) {
|
if (accessToken != null && !accessToken.equals("")) {
|
||||||
|
|
||||||
@@ -167,13 +177,13 @@ public class CommentMoreBottomSheetFragment extends LandscapeExpandedRoundedBott
|
|||||||
dismiss();
|
dismiss();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
String link = (mShareLinksOnLocalInstance) ? lemmyCommentAPI.getRetrofitHolder().getBaseURL() + "/comment/" + comment.getId() : comment.getPermalink();
|
||||||
shareTextView.setOnClickListener(view -> {
|
shareTextView.setOnClickListener(view -> {
|
||||||
dismiss();
|
dismiss();
|
||||||
try {
|
try {
|
||||||
Intent intent = new Intent(Intent.ACTION_SEND);
|
Intent intent = new Intent(Intent.ACTION_SEND);
|
||||||
intent.setType("text/plain");
|
intent.setType("text/plain");
|
||||||
intent.putExtra(Intent.EXTRA_TEXT, comment.getPermalink());
|
intent.putExtra(Intent.EXTRA_TEXT, link);
|
||||||
activity.startActivity(Intent.createChooser(intent, getString(R.string.share)));
|
activity.startActivity(Intent.createChooser(intent, getString(R.string.share)));
|
||||||
} catch (ActivityNotFoundException e) {
|
} catch (ActivityNotFoundException e) {
|
||||||
Toast.makeText(activity, R.string.no_activity_found_for_share, Toast.LENGTH_SHORT).show();
|
Toast.makeText(activity, R.string.no_activity_found_for_share, Toast.LENGTH_SHORT).show();
|
||||||
@@ -182,7 +192,7 @@ public class CommentMoreBottomSheetFragment extends LandscapeExpandedRoundedBott
|
|||||||
|
|
||||||
shareTextView.setOnLongClickListener(view -> {
|
shareTextView.setOnLongClickListener(view -> {
|
||||||
dismiss();
|
dismiss();
|
||||||
activity.copyLink(comment.getPermalink());
|
activity.copyLink(link);
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -201,6 +211,12 @@ public class CommentMoreBottomSheetFragment extends LandscapeExpandedRoundedBott
|
|||||||
LayoutInflater dialog_inflater = LayoutInflater.from(activity);
|
LayoutInflater dialog_inflater = LayoutInflater.from(activity);
|
||||||
View dialog_view = dialog_inflater.inflate(R.layout.dialog_report, null);
|
View dialog_view = dialog_inflater.inflate(R.layout.dialog_report, null);
|
||||||
EditText reasonEditText = dialog_view.findViewById(R.id.reasonEditText);
|
EditText reasonEditText = dialog_view.findViewById(R.id.reasonEditText);
|
||||||
|
reasonEditText.setTextColor(mCustomThemeWrapper.getPrimaryTextColor());
|
||||||
|
reasonEditText.setHintTextColor(mCustomThemeWrapper.getSecondaryTextColor());
|
||||||
|
if (activity.typeface != null) {
|
||||||
|
reasonEditText.setTypeface(activity.typeface);
|
||||||
|
}
|
||||||
|
reasonEditText.setHighlightColor(mCustomThemeWrapper.getColorAccent());
|
||||||
|
|
||||||
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(activity)
|
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(activity)
|
||||||
.setTitle(R.string.report_post)
|
.setTitle(R.string.report_post)
|
||||||
|
|||||||
@@ -933,7 +933,7 @@ public class HistoryPostFragment extends Fragment implements FragmentCommunicato
|
|||||||
} else {
|
} else {
|
||||||
if (isSubreddit) {
|
if (isSubreddit) {
|
||||||
LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase,
|
LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase,
|
||||||
subredditOrUserName, accessToken, mOauthRetrofit, mRetrofit.getRetrofit(),
|
subredditOrUserName, accessToken, mRetrofit.getRetrofit(),
|
||||||
iconImageUrl -> {
|
iconImageUrl -> {
|
||||||
subredditOrUserIcons.put(subredditOrUserName, iconImageUrl);
|
subredditOrUserIcons.put(subredditOrUserName, iconImageUrl);
|
||||||
loadIconListener.loadIconSuccess(subredditOrUserName, iconImageUrl);
|
loadIconListener.loadIconSuccess(subredditOrUserName, iconImageUrl);
|
||||||
|
|||||||
@@ -465,7 +465,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
|||||||
sortType = new SortType(st == null ? SortType.Type.TOP_ALL : st,sortTime != null ? SortType.Time.valueOf(sortTime) : null);
|
sortType = new SortType(st == null ? SortType.Type.TOP_ALL : st,sortTime != null ? SortType.Time.valueOf(sortTime) : null);
|
||||||
postLayout = mPostLayoutSharedPreferences.getInt(SharedPreferencesUtils.POST_LAYOUT_SEARCH_POST, defaultPostLayout);
|
postLayout = mPostLayoutSharedPreferences.getInt(SharedPreferencesUtils.POST_LAYOUT_SEARCH_POST, defaultPostLayout);
|
||||||
|
|
||||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit.getRetrofit(), mGfycatRetrofit,
|
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit, mGfycatRetrofit,
|
||||||
mRedgifsRetrofit, mStreamableApiProvider, mCustomThemeWrapper, locale,
|
mRedgifsRetrofit, mStreamableApiProvider, mCustomThemeWrapper, locale,
|
||||||
accessToken, accountName, postType, postLayout, true,
|
accessToken, accountName, postType, postLayout, true,
|
||||||
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
||||||
@@ -535,14 +535,17 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
|||||||
}
|
}
|
||||||
boolean displaySubredditName = subredditName != null && (subredditName.equals("local") || subredditName.equals("all"));
|
boolean displaySubredditName = subredditName != null && (subredditName.equals("local") || subredditName.equals("all"));
|
||||||
postLayout = mPostLayoutSharedPreferences.getInt(SharedPreferencesUtils.POST_LAYOUT_SUBREDDIT_POST_BASE + subredditName, defaultPostLayout);
|
postLayout = mPostLayoutSharedPreferences.getInt(SharedPreferencesUtils.POST_LAYOUT_SUBREDDIT_POST_BASE + subredditName, defaultPostLayout);
|
||||||
|
SortType.Type st = SortType.Type.fromValue(sort);
|
||||||
|
st = st == null ? SortType.Type.HOT : st;
|
||||||
if (sortTime != null) {
|
if (sortTime != null) {
|
||||||
sortType = new SortType(SortType.Type.fromValue(sortTime));
|
st = SortType.Type.fromValue(sortTime);
|
||||||
|
st = st == null ? SortType.Type.TOP_ALL : st;
|
||||||
|
sortType = new SortType(st);
|
||||||
} else {
|
} else {
|
||||||
sortType = new SortType(SortType.Type.valueOf(sort));
|
sortType = new SortType(st);
|
||||||
}
|
}
|
||||||
|
|
||||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit.getRetrofit(), mGfycatRetrofit,
|
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit, mGfycatRetrofit,
|
||||||
mRedgifsRetrofit, mStreamableApiProvider, mCustomThemeWrapper, locale,
|
mRedgifsRetrofit, mStreamableApiProvider, mCustomThemeWrapper, locale,
|
||||||
accessToken, accountName, postType, postLayout, displaySubredditName,
|
accessToken, accountName, postType, postLayout, displaySubredditName,
|
||||||
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
||||||
@@ -607,13 +610,15 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
|||||||
postLayout = mPostLayoutSharedPreferences.getInt(SharedPreferencesUtils.POST_LAYOUT_MULTI_REDDIT_POST_BASE + multiRedditPath,
|
postLayout = mPostLayoutSharedPreferences.getInt(SharedPreferencesUtils.POST_LAYOUT_MULTI_REDDIT_POST_BASE + multiRedditPath,
|
||||||
defaultPostLayout);
|
defaultPostLayout);
|
||||||
|
|
||||||
|
SortType.Type st = SortType.Type.fromValue(sort);
|
||||||
|
st = st == null ? SortType.Type.HOT : st;
|
||||||
if (sortTime != null) {
|
if (sortTime != null) {
|
||||||
sortType = new SortType(SortType.Type.valueOf(sort), SortType.Time.valueOf(sortTime));
|
sortType = new SortType(st, SortType.Time.valueOf(sortTime));
|
||||||
} else {
|
} else {
|
||||||
sortType = new SortType(SortType.Type.valueOf(sort));
|
sortType = new SortType(st);
|
||||||
}
|
}
|
||||||
|
|
||||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit.getRetrofit(), mGfycatRetrofit,
|
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit, mGfycatRetrofit,
|
||||||
mRedgifsRetrofit, mStreamableApiProvider, mCustomThemeWrapper, locale,
|
mRedgifsRetrofit, mStreamableApiProvider, mCustomThemeWrapper, locale,
|
||||||
accessToken, accountName, postType, postLayout, true,
|
accessToken, accountName, postType, postLayout, true,
|
||||||
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
||||||
@@ -669,16 +674,20 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
|||||||
|
|
||||||
String sort = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TYPE_USER_POST_BASE + username,
|
String sort = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TYPE_USER_POST_BASE + username,
|
||||||
mSharedPreferences.getString(SharedPreferencesUtils.USER_DEFAULT_SORT_TYPE, SortType.Type.NEW.name()));
|
mSharedPreferences.getString(SharedPreferencesUtils.USER_DEFAULT_SORT_TYPE, SortType.Type.NEW.name()));
|
||||||
|
SortType.Type st = SortType.Type.fromValue(sort);
|
||||||
|
st = st == null ? SortType.Type.NEW : st;
|
||||||
if (sort.equalsIgnoreCase(SortType.Type.TOP.value)) {
|
if (sort.equalsIgnoreCase(SortType.Type.TOP.value)) {
|
||||||
String sortTime = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TIME_USER_POST_BASE + username,
|
String sortTime = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TIME_USER_POST_BASE + username,
|
||||||
mSharedPreferences.getString(SharedPreferencesUtils.USER_DEFAULT_SORT_TIME, SortType.Time.ALL.name()));
|
mSharedPreferences.getString(SharedPreferencesUtils.USER_DEFAULT_SORT_TIME, SortType.Time.ALL.name()));
|
||||||
sortType = new SortType(SortType.Type.fromValue(sortTime));
|
st = SortType.Type.fromValue(sortTime);
|
||||||
|
st = st == null ? SortType.Type.NEW : st;
|
||||||
|
sortType = new SortType(st);
|
||||||
} else {
|
} else {
|
||||||
sortType = new SortType(SortType.Type.valueOf(sort));
|
sortType = new SortType(st);
|
||||||
}
|
}
|
||||||
postLayout = mPostLayoutSharedPreferences.getInt(SharedPreferencesUtils.POST_LAYOUT_USER_POST_BASE + username, defaultPostLayout);
|
postLayout = mPostLayoutSharedPreferences.getInt(SharedPreferencesUtils.POST_LAYOUT_USER_POST_BASE + username, defaultPostLayout);
|
||||||
|
|
||||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit.getRetrofit(), mGfycatRetrofit,
|
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit, mGfycatRetrofit,
|
||||||
mRedgifsRetrofit, mStreamableApiProvider, mCustomThemeWrapper, locale,
|
mRedgifsRetrofit, mStreamableApiProvider, mCustomThemeWrapper, locale,
|
||||||
accessToken, accountName, postType, postLayout, true,
|
accessToken, accountName, postType, postLayout, true,
|
||||||
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
||||||
@@ -732,16 +741,18 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
|||||||
subredditName = getArguments().getString(EXTRA_NAME);
|
subredditName = getArguments().getString(EXTRA_NAME);
|
||||||
|
|
||||||
String sort = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TYPE_SUBREDDIT_POST_BASE + "-", SortType.Type.HOT.name());
|
String sort = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TYPE_SUBREDDIT_POST_BASE + "-", SortType.Type.HOT.name());
|
||||||
|
SortType.Type st = SortType.Type.fromValue(sort);
|
||||||
|
st = st == null ? SortType.Type.NEW : st;
|
||||||
if (sort.equals(SortType.Type.TOP.name())) {
|
if (sort.equals(SortType.Type.TOP.name())) {
|
||||||
String sortTime = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TIME_SUBREDDIT_POST_BASE + "-", SortType.Time.ALL.name());
|
String sortTime = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TIME_SUBREDDIT_POST_BASE + "-", SortType.Time.ALL.name());
|
||||||
sortType = new SortType(SortType.Type.valueOf(sort), SortType.Time.valueOf(sortTime));
|
sortType = new SortType(st, SortType.Time.valueOf(sortTime));
|
||||||
} else {
|
} else {
|
||||||
sortType = new SortType(SortType.Type.valueOf(sort));
|
sortType = new SortType(st);
|
||||||
}
|
}
|
||||||
|
|
||||||
postLayout = mPostLayoutSharedPreferences.getInt(SharedPreferencesUtils.POST_LAYOUT_FRONT_PAGE_POST, defaultPostLayout);
|
postLayout = mPostLayoutSharedPreferences.getInt(SharedPreferencesUtils.POST_LAYOUT_FRONT_PAGE_POST, defaultPostLayout);
|
||||||
|
|
||||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit.getRetrofit(), mGfycatRetrofit,
|
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit, mGfycatRetrofit,
|
||||||
mRedgifsRetrofit, mStreamableApiProvider, mCustomThemeWrapper, locale,
|
mRedgifsRetrofit, mStreamableApiProvider, mCustomThemeWrapper, locale,
|
||||||
accessToken, accountName, postType, postLayout, true,
|
accessToken, accountName, postType, postLayout, true,
|
||||||
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
||||||
@@ -792,16 +803,18 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
|||||||
nameOfUsage = multiRedditPath;
|
nameOfUsage = multiRedditPath;
|
||||||
|
|
||||||
String sort = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TYPE_MULTI_REDDIT_POST_BASE + multiRedditPath, SortType.Type.HOT.name());
|
String sort = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TYPE_MULTI_REDDIT_POST_BASE + multiRedditPath, SortType.Type.HOT.name());
|
||||||
|
SortType.Type st = SortType.Type.fromValue(sort);
|
||||||
|
st = st == null ? SortType.Type.NEW : st;
|
||||||
if (sort.equals(SortType.Type.TOP.name())) {
|
if (sort.equals(SortType.Type.TOP.name())) {
|
||||||
String sortTime = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TIME_MULTI_REDDIT_POST_BASE + multiRedditPath, SortType.Time.ALL.name());
|
String sortTime = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TIME_MULTI_REDDIT_POST_BASE + multiRedditPath, SortType.Time.ALL.name());
|
||||||
sortType = new SortType(SortType.Type.valueOf(sort), SortType.Time.valueOf(sortTime));
|
sortType = new SortType(st, SortType.Time.valueOf(sortTime));
|
||||||
} else {
|
} else {
|
||||||
sortType = new SortType(SortType.Type.valueOf(sort));
|
sortType = new SortType(st);
|
||||||
}
|
}
|
||||||
|
|
||||||
postLayout = mPostLayoutSharedPreferences.getInt(SharedPreferencesUtils.POST_LAYOUT_MULTI_REDDIT_POST_BASE + multiRedditPath, defaultPostLayout);
|
postLayout = mPostLayoutSharedPreferences.getInt(SharedPreferencesUtils.POST_LAYOUT_MULTI_REDDIT_POST_BASE + multiRedditPath, defaultPostLayout);
|
||||||
|
|
||||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit.getRetrofit(), mGfycatRetrofit,
|
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit, mGfycatRetrofit,
|
||||||
mRedgifsRetrofit, mStreamableApiProvider, mCustomThemeWrapper, locale,
|
mRedgifsRetrofit, mStreamableApiProvider, mCustomThemeWrapper, locale,
|
||||||
accessToken, accountName, postType, postLayout, true,
|
accessToken, accountName, postType, postLayout, true,
|
||||||
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
||||||
@@ -850,15 +863,17 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
|||||||
nameOfUsage = PostFilterUsage.NO_USAGE;
|
nameOfUsage = PostFilterUsage.NO_USAGE;
|
||||||
subredditName = getArguments().getString(EXTRA_NAME);
|
subredditName = getArguments().getString(EXTRA_NAME);
|
||||||
String sort = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TYPE_BEST_POST, SortType.Type.ACTIVE.name());
|
String sort = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TYPE_BEST_POST, SortType.Type.ACTIVE.name());
|
||||||
|
SortType.Type st = SortType.Type.fromValue(sort);
|
||||||
|
st = st == null ? SortType.Type.NEW : st;
|
||||||
if (sort.equals(SortType.Type.TOP.name())) {
|
if (sort.equals(SortType.Type.TOP.name())) {
|
||||||
String sortTime = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TIME_BEST_POST, SortType.Time.ALL.name());
|
String sortTime = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TIME_BEST_POST, SortType.Time.ALL.name());
|
||||||
sortType = new SortType(SortType.Type.valueOf(sort), SortType.Time.valueOf(sortTime));
|
sortType = new SortType(st, SortType.Time.valueOf(sortTime));
|
||||||
} else {
|
} else {
|
||||||
sortType = new SortType(SortType.Type.valueOf(sort));
|
sortType = new SortType(st);
|
||||||
}
|
}
|
||||||
postLayout = mPostLayoutSharedPreferences.getInt(SharedPreferencesUtils.POST_LAYOUT_FRONT_PAGE_POST, defaultPostLayout);
|
postLayout = mPostLayoutSharedPreferences.getInt(SharedPreferencesUtils.POST_LAYOUT_FRONT_PAGE_POST, defaultPostLayout);
|
||||||
|
|
||||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit.getRetrofit(), mGfycatRetrofit,
|
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit, mGfycatRetrofit,
|
||||||
mRedgifsRetrofit, mStreamableApiProvider, mCustomThemeWrapper, locale,
|
mRedgifsRetrofit, mStreamableApiProvider, mCustomThemeWrapper, locale,
|
||||||
accessToken, accountName, postType, postLayout, true,
|
accessToken, accountName, postType, postLayout, true,
|
||||||
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
||||||
@@ -1750,7 +1765,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
|||||||
} else {
|
} else {
|
||||||
if (isSubreddit) {
|
if (isSubreddit) {
|
||||||
LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase,
|
LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase,
|
||||||
subredditOrUserName, accessToken, mRetrofit.getRetrofit(), mRetrofit.getRetrofit(),
|
subredditOrUserName, accessToken, mRetrofit.getRetrofit(),
|
||||||
iconImageUrl -> {
|
iconImageUrl -> {
|
||||||
subredditOrUserIcons.put(subredditOrUserName, iconImageUrl);
|
subredditOrUserIcons.put(subredditOrUserName, iconImageUrl);
|
||||||
loadIconListener.loadIconSuccess(subredditOrUserName, iconImageUrl);
|
loadIconListener.loadIconSuccess(subredditOrUserName, iconImageUrl);
|
||||||
|
|||||||
@@ -614,7 +614,7 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
|||||||
setupMenu();
|
setupMenu();
|
||||||
|
|
||||||
mPostAdapter = new PostDetailRecyclerViewAdapter(activity,
|
mPostAdapter = new PostDetailRecyclerViewAdapter(activity,
|
||||||
this, mExecutor, mCustomThemeWrapper, mRetrofit.getRetrofit(), mGfycatRetrofit,
|
this, mExecutor, mCustomThemeWrapper, mRetrofit, mGfycatRetrofit,
|
||||||
mRedgifsRetrofit, mStreamableApiProvider, mRedditDataRoomDatabase, mGlide,
|
mRedgifsRetrofit, mStreamableApiProvider, mRedditDataRoomDatabase, mGlide,
|
||||||
mSeparatePostAndComments, mAccessToken, mAccountName, mPost, mLocale,
|
mSeparatePostAndComments, mAccessToken, mAccountName, mPost, mLocale,
|
||||||
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostDetailsSharedPreferences,
|
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostDetailsSharedPreferences,
|
||||||
@@ -1155,10 +1155,6 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
|||||||
.show();
|
.show();
|
||||||
return true;
|
return true;
|
||||||
} else if (itemId == R.id.action_report_view_post_detail_fragment) {
|
} else if (itemId == R.id.action_report_view_post_detail_fragment) {
|
||||||
if (mAccessToken == null) {
|
|
||||||
Toast.makeText(activity, R.string.login_first, Toast.LENGTH_SHORT).show();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (mAccessToken == null) {
|
if (mAccessToken == null) {
|
||||||
Toast.makeText(activity, R.string.login_first, Toast.LENGTH_SHORT).show();
|
Toast.makeText(activity, R.string.login_first, Toast.LENGTH_SHORT).show();
|
||||||
return true;
|
return true;
|
||||||
@@ -1166,7 +1162,11 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
|||||||
LayoutInflater inflater = LayoutInflater.from(activity);
|
LayoutInflater inflater = LayoutInflater.from(activity);
|
||||||
View view = inflater.inflate(R.layout.dialog_report, null);
|
View view = inflater.inflate(R.layout.dialog_report, null);
|
||||||
EditText reasonEditText = view.findViewById(R.id.reasonEditText);
|
EditText reasonEditText = view.findViewById(R.id.reasonEditText);
|
||||||
|
reasonEditText.setTextColor(mCustomThemeWrapper.getPrimaryTextColor());
|
||||||
|
reasonEditText.setHintTextColor(mCustomThemeWrapper.getSecondaryTextColor());
|
||||||
|
if (activity.typeface != null) {
|
||||||
|
reasonEditText.setTypeface(activity.typeface);
|
||||||
|
}
|
||||||
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(activity)
|
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(activity)
|
||||||
.setTitle(R.string.report_post)
|
.setTitle(R.string.report_post)
|
||||||
.setView(view)
|
.setView(view)
|
||||||
@@ -1338,7 +1338,7 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
|||||||
mPost = post;
|
mPost = post;
|
||||||
mPostAdapter = new PostDetailRecyclerViewAdapter(activity,
|
mPostAdapter = new PostDetailRecyclerViewAdapter(activity,
|
||||||
ViewPostDetailFragment.this, mExecutor, mCustomThemeWrapper,
|
ViewPostDetailFragment.this, mExecutor, mCustomThemeWrapper,
|
||||||
mRetrofit.getRetrofit(), mGfycatRetrofit, mRedgifsRetrofit,
|
mRetrofit, mGfycatRetrofit, mRedgifsRetrofit,
|
||||||
mStreamableApiProvider, mRedditDataRoomDatabase, mGlide, mSeparatePostAndComments,
|
mStreamableApiProvider, mRedditDataRoomDatabase, mGlide, mSeparatePostAndComments,
|
||||||
mAccessToken, mAccountName, mPost, mLocale, mSharedPreferences,
|
mAccessToken, mAccountName, mPost, mLocale, mSharedPreferences,
|
||||||
mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences,
|
mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences,
|
||||||
|
|||||||
@@ -153,7 +153,7 @@ public class DownloadMediaService extends Service {
|
|||||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
|
||||||
File directory = getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
|
File directory = getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
|
||||||
if (directory != null) {
|
if (directory != null) {
|
||||||
String directoryPath = separateDownloadFolder && subredditName != null && !subredditName.equals("") ? directory.getAbsolutePath() + "/Infinity/" + subredditName + "/" : directory.getAbsolutePath() + "/Infinity/";
|
String directoryPath = separateDownloadFolder && subredditName != null && !subredditName.equals("") ? directory.getAbsolutePath() + "/Eternity/" + subredditName + "/" : directory.getAbsolutePath() + "/Eternity/";
|
||||||
File infinityDir = new File(directoryPath);
|
File infinityDir = new File(directoryPath);
|
||||||
if (!infinityDir.exists() && !infinityDir.mkdirs()) {
|
if (!infinityDir.exists() && !infinityDir.mkdirs()) {
|
||||||
downloadFinished(mediaType, randomNotificationIdOffset, mimeType,
|
downloadFinished(mediaType, randomNotificationIdOffset, mimeType,
|
||||||
@@ -168,7 +168,7 @@ public class DownloadMediaService extends Service {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
String dir = mediaType == EXTRA_MEDIA_TYPE_VIDEO ? Environment.DIRECTORY_MOVIES : Environment.DIRECTORY_PICTURES;
|
String dir = mediaType == EXTRA_MEDIA_TYPE_VIDEO ? Environment.DIRECTORY_MOVIES : Environment.DIRECTORY_PICTURES;
|
||||||
destinationFileUriString = separateDownloadFolder && subredditName != null && !subredditName.equals("") ? dir + "/Infinity/" + subredditName + "/" : dir + "/Infinity/";
|
destinationFileUriString = separateDownloadFolder && subredditName != null && !subredditName.equals("") ? dir + "/Eternity/" + subredditName + "/" : dir + "/Eternity/";
|
||||||
}
|
}
|
||||||
isDefaultDestination = true;
|
isDefaultDestination = true;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ public interface SubscribedSubredditDao {
|
|||||||
@Query("SELECT * from subscribed_subreddits WHERE qualified_name = :qualified_name COLLATE NOCASE AND username = :accountName COLLATE NOCASE LIMIT 1")
|
@Query("SELECT * from subscribed_subreddits WHERE qualified_name = :qualified_name COLLATE NOCASE AND username = :accountName COLLATE NOCASE LIMIT 1")
|
||||||
SubscribedSubredditData getSubscribedSubredditByQualifiedName(String qualified_name, String accountName);
|
SubscribedSubredditData getSubscribedSubredditByQualifiedName(String qualified_name, String accountName);
|
||||||
|
|
||||||
@Query("DELETE FROM subscribed_subreddits WHERE name = :subredditName COLLATE NOCASE AND username = :accountName COLLATE NOCASE")
|
@Query("DELETE FROM subscribed_subreddits WHERE qualified_name = :subredditName COLLATE NOCASE AND username = :accountName COLLATE NOCASE")
|
||||||
void deleteSubscribedSubreddit(String subredditName, String accountName);
|
void deleteSubscribedSubreddit(String subredditName, String accountName);
|
||||||
|
|
||||||
@Query("SELECT * from subscribed_subreddits WHERE username = :qualified_name AND name LIKE '%' || :searchQuery || '%' COLLATE NOCASE AND is_favorite = 1 ORDER BY name COLLATE NOCASE ASC")
|
@Query("SELECT * from subscribed_subreddits WHERE username = :qualified_name AND name LIKE '%' || :searchQuery || '%' COLLATE NOCASE AND is_favorite = 1 ORDER BY name COLLATE NOCASE ASC")
|
||||||
|
|||||||
@@ -129,13 +129,13 @@ public class SubscribedSubredditData implements Parcelable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return id;
|
return id + username.hashCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(@Nullable Object obj) {
|
public boolean equals(@Nullable Object obj) {
|
||||||
if (obj instanceof SubscribedSubredditData) {
|
if (obj instanceof SubscribedSubredditData) {
|
||||||
return id == ((SubscribedSubredditData) obj).getId();
|
return id == ((SubscribedSubredditData) obj).getId() && username.equalsIgnoreCase(((SubscribedSubredditData) obj).getUsername());
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -416,4 +416,6 @@ public class SharedPreferencesUtils {
|
|||||||
public static final String CAN_DOWNVOTE = "can_downvote";
|
public static final String CAN_DOWNVOTE = "can_downvote";
|
||||||
public static final String SHOW_STATISTICS = "show_statistics";
|
public static final String SHOW_STATISTICS = "show_statistics";
|
||||||
public static final String SHOW_POST_AND_COMMENT_SCORE = "show_score";
|
public static final String SHOW_POST_AND_COMMENT_SCORE = "show_score";
|
||||||
|
|
||||||
|
public static final String SHARE_LINK_ON_LOCAL_INSTANCE = "share_link_on_local_instance";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,67 +26,69 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="16dp"
|
android:layout_marginStart="16dp"
|
||||||
android:layout_marginEnd="8dp"
|
android:maxWidth="170dp"
|
||||||
android:textSize="?attr/font_default"
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
|
android:textSize="?attr/font_default"
|
||||||
|
app:layout_constrainedWidth="true"
|
||||||
app:layout_constraintStart_toEndOf="@+id/icon_gif_image_view_item_post_detail_video_autoplay"
|
app:layout_constraintStart_toEndOf="@+id/icon_gif_image_view_item_post_detail_video_autoplay"
|
||||||
app:layout_constraintEnd_toStartOf="@id/guideline"
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:layout_constraintHorizontal_bias="0"
|
<TextView
|
||||||
app:layout_constrainedWidth="true" />
|
android:id="@+id/community_instance_text_view_item_post_detail_video_autoplay"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:fontFamily="?attr/font_family"
|
||||||
|
android:textSize="?attr/font_default"
|
||||||
|
app:layout_constrainedWidth="true"
|
||||||
|
app:layout_constraintStart_toEndOf="@+id/subreddit_text_view_item_post_detail_video_autoplay"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/user_text_view_item_post_detail_video_autoplay"
|
android:id="@+id/user_text_view_item_post_detail_video_autoplay"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="16dp"
|
android:layout_marginStart="16dp"
|
||||||
android:layout_marginEnd="8dp"
|
android:maxWidth="170dp"
|
||||||
android:textSize="?attr/font_default"
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
|
android:textSize="?attr/font_default"
|
||||||
|
app:layout_constrainedWidth="true"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/author_flair_text_view_item_post_detail_video_autoplay"
|
app:layout_constraintBottom_toTopOf="@+id/author_flair_text_view_item_post_detail_video_autoplay"
|
||||||
app:layout_constraintStart_toEndOf="@+id/icon_gif_image_view_item_post_detail_video_autoplay"
|
app:layout_constraintStart_toEndOf="@+id/icon_gif_image_view_item_post_detail_video_autoplay"
|
||||||
app:layout_constraintEnd_toStartOf="@id/guideline"
|
app:layout_constraintTop_toBottomOf="@+id/subreddit_text_view_item_post_detail_video_autoplay" />
|
||||||
app:layout_constraintTop_toBottomOf="@+id/subreddit_text_view_item_post_detail_video_autoplay"
|
|
||||||
app:layout_constraintHorizontal_bias="0"
|
<TextView
|
||||||
app:layout_constrainedWidth="true" />
|
android:id="@+id/user_instance_text_view_item_post_detail_video_autoplay"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:fontFamily="?attr/font_family"
|
||||||
|
android:textSize="?attr/font_default"
|
||||||
|
app:layout_constrainedWidth="true"
|
||||||
|
app:layout_constraintBottom_toTopOf="@+id/author_flair_text_view_item_post_detail_video_autoplay"
|
||||||
|
app:layout_constraintStart_toEndOf="@+id/user_text_view_item_post_detail_video_autoplay"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/subreddit_text_view_item_post_detail_video_autoplay" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/author_flair_text_view_item_post_detail_video_autoplay"
|
android:id="@+id/author_flair_text_view_item_post_detail_video_autoplay"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="16dp"
|
android:layout_marginStart="16dp"
|
||||||
android:layout_marginEnd="8dp"
|
|
||||||
android:textSize="?attr/font_12"
|
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
|
android:textSize="?attr/font_12"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
|
app:layout_constrainedWidth="true"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toEndOf="@+id/icon_gif_image_view_item_post_detail_video_autoplay"
|
app:layout_constraintStart_toEndOf="@+id/icon_gif_image_view_item_post_detail_video_autoplay"
|
||||||
app:layout_constraintEnd_toStartOf="@id/guideline"
|
|
||||||
app:layout_constraintTop_toBottomOf="@+id/user_text_view_item_post_detail_video_autoplay"
|
app:layout_constraintTop_toBottomOf="@+id/user_text_view_item_post_detail_video_autoplay"
|
||||||
app:layout_constraintHorizontal_bias="0"
|
|
||||||
app:layout_constrainedWidth="true"
|
|
||||||
tools:visibility="visible" />
|
tools:visibility="visible" />
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/post_time_text_view_item_post_detail_video_autoplay"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:gravity="end"
|
|
||||||
android:textSize="?attr/font_default"
|
|
||||||
android:fontFamily="?attr/font_family"
|
|
||||||
app:layout_constraintHorizontal_bias="1"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintStart_toEndOf="@id/guideline"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.Guideline
|
|
||||||
android:id="@+id/guideline"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="vertical"
|
|
||||||
app:layout_constraintGuide_percent="0.6" />
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
@@ -103,23 +105,42 @@
|
|||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:longClickable="true" />
|
android:longClickable="true" />
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/post_time_text_view_item_post_detail_video_autoplay"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="8dp"
|
||||||
|
android:fontFamily="?attr/font_family"
|
||||||
|
android:gravity="end"
|
||||||
|
android:textSize="?attr/font_default"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
<com.nex3z.flowlayout.FlowLayout
|
<com.nex3z.flowlayout.FlowLayout
|
||||||
|
android:id="@+id/flowLayout10"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:padding="16dp"
|
android:padding="16dp"
|
||||||
app:flChildSpacing="16dp"
|
app:flChildSpacing="16dp"
|
||||||
app:flChildSpacingForLastRow="align"
|
app:flChildSpacingForLastRow="align"
|
||||||
app:flRowSpacing="8dp"
|
app:flRowSpacing="8dp"
|
||||||
app:flRowVerticalGravity="center">
|
app:flRowVerticalGravity="center"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
<com.libRG.CustomTextView
|
<com.libRG.CustomTextView
|
||||||
android:id="@+id/type_text_view_item_post_detail_video_autoplay"
|
android:id="@+id/type_text_view_item_post_detail_video_autoplay"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:fontFamily="?attr/font_family"
|
||||||
android:padding="4dp"
|
android:padding="4dp"
|
||||||
android:text="@string/video"
|
android:text="@string/video"
|
||||||
android:textSize="?attr/font_12"
|
android:textSize="?attr/font_12"
|
||||||
android:fontFamily="?attr/font_family"
|
|
||||||
app:lib_setRadius="6dp"
|
app:lib_setRadius="6dp"
|
||||||
app:lib_setRoundedView="true"
|
app:lib_setRoundedView="true"
|
||||||
app:lib_setShape="rectangle" />
|
app:lib_setShape="rectangle" />
|
||||||
@@ -129,10 +150,10 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:text="@string/spoiler"
|
|
||||||
android:textSize="?attr/font_12"
|
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
android:padding="4dp"
|
android:padding="4dp"
|
||||||
|
android:text="@string/spoiler"
|
||||||
|
android:textSize="?attr/font_12"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
app:lib_setRadius="6dp"
|
app:lib_setRadius="6dp"
|
||||||
app:lib_setRoundedView="true"
|
app:lib_setRoundedView="true"
|
||||||
@@ -142,10 +163,10 @@
|
|||||||
android:id="@+id/nsfw_text_view_item_post_detail_video_autoplay"
|
android:id="@+id/nsfw_text_view_item_post_detail_video_autoplay"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:fontFamily="?attr/font_family"
|
||||||
android:padding="4dp"
|
android:padding="4dp"
|
||||||
android:text="@string/nsfw"
|
android:text="@string/nsfw"
|
||||||
android:textSize="?attr/font_12"
|
android:textSize="?attr/font_12"
|
||||||
android:fontFamily="?attr/font_family"
|
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
app:lib_setRadius="6dp"
|
app:lib_setRadius="6dp"
|
||||||
app:lib_setRoundedView="true"
|
app:lib_setRoundedView="true"
|
||||||
@@ -156,9 +177,9 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
|
android:fontFamily="?attr/font_family"
|
||||||
android:padding="4dp"
|
android:padding="4dp"
|
||||||
android:textSize="?attr/font_12"
|
android:textSize="?attr/font_12"
|
||||||
android:fontFamily="?attr/font_family"
|
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
app:lib_setRadius="6dp"
|
app:lib_setRadius="6dp"
|
||||||
app:lib_setRoundedView="true"
|
app:lib_setRoundedView="true"
|
||||||
@@ -168,8 +189,8 @@
|
|||||||
android:id="@+id/upvote_ratio_text_view_item_post_detail_video_autoplay"
|
android:id="@+id/upvote_ratio_text_view_item_post_detail_video_autoplay"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textSize="?attr/font_12"
|
android:fontFamily="?attr/font_family"
|
||||||
android:fontFamily="?attr/font_family" />
|
android:textSize="?attr/font_12" />
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/archived_image_view_item_post_detail_video_autoplay"
|
android:id="@+id/archived_image_view_item_post_detail_video_autoplay"
|
||||||
@@ -196,11 +217,12 @@
|
|||||||
android:id="@+id/awards_text_view_item_post_detail_video_autoplay"
|
android:id="@+id/awards_text_view_item_post_detail_video_autoplay"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textSize="?attr/font_12"
|
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
|
android:textSize="?attr/font_12"
|
||||||
android:visibility="gone" />
|
android:visibility="gone" />
|
||||||
|
|
||||||
</com.nex3z.flowlayout.FlowLayout>
|
</com.nex3z.flowlayout.FlowLayout>
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
<com.google.android.exoplayer2.ui.AspectRatioFrameLayout
|
<com.google.android.exoplayer2.ui.AspectRatioFrameLayout
|
||||||
android:id="@+id/aspect_ratio_frame_layout_item_post_detail_video_autoplay"
|
android:id="@+id/aspect_ratio_frame_layout_item_post_detail_video_autoplay"
|
||||||
|
|||||||
@@ -36,6 +36,9 @@
|
|||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:layout_marginStart="16dp"
|
android:layout_marginStart="16dp"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
|
android:maxWidth="170dp"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
android:textSize="?attr/font_default"
|
android:textSize="?attr/font_default"
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
app:layout_constraintBottom_toTopOf="@id/user_text_view_item_post_video_type_autoplay"
|
app:layout_constraintBottom_toTopOf="@id/user_text_view_item_post_video_type_autoplay"
|
||||||
@@ -50,6 +53,8 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
android:textSize="?attr/font_default"
|
android:textSize="?attr/font_default"
|
||||||
app:layout_constrainedWidth="true"
|
app:layout_constrainedWidth="true"
|
||||||
@@ -65,6 +70,9 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="16dp"
|
android:layout_marginStart="16dp"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
|
android:maxWidth="170dp"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
android:textSize="?attr/font_default"
|
android:textSize="?attr/font_default"
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
@@ -78,6 +86,8 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
android:textSize="?attr/font_default"
|
android:textSize="?attr/font_default"
|
||||||
app:layout_constrainedWidth="true"
|
app:layout_constrainedWidth="true"
|
||||||
|
|||||||
@@ -36,6 +36,9 @@
|
|||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:layout_marginStart="16dp"
|
android:layout_marginStart="16dp"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
|
android:maxWidth="170dp"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
android:textSize="?attr/font_default"
|
android:textSize="?attr/font_default"
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
app:layout_constraintBottom_toTopOf="@id/user_text_view_item_post_video_type_autoplay"
|
app:layout_constraintBottom_toTopOf="@id/user_text_view_item_post_video_type_autoplay"
|
||||||
@@ -50,6 +53,8 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
android:textSize="?attr/font_default"
|
android:textSize="?attr/font_default"
|
||||||
app:layout_constrainedWidth="true"
|
app:layout_constrainedWidth="true"
|
||||||
@@ -65,6 +70,9 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="16dp"
|
android:layout_marginStart="16dp"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
|
android:maxWidth="170dp"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
android:textSize="?attr/font_default"
|
android:textSize="?attr/font_default"
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
@@ -78,6 +86,9 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
|
android:maxWidth="170dp"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
android:textSize="?attr/font_default"
|
android:textSize="?attr/font_default"
|
||||||
app:layout_constrainedWidth="true"
|
app:layout_constrainedWidth="true"
|
||||||
|
|||||||
@@ -36,6 +36,9 @@
|
|||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:layout_marginStart="16dp"
|
android:layout_marginStart="16dp"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
|
android:maxWidth="170dp"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
android:textSize="?attr/font_default"
|
android:textSize="?attr/font_default"
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
app:layout_constraintBottom_toTopOf="@id/user_text_view_item_post_with_preview"
|
app:layout_constraintBottom_toTopOf="@id/user_text_view_item_post_with_preview"
|
||||||
@@ -50,6 +53,8 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
android:textSize="?attr/font_default"
|
android:textSize="?attr/font_default"
|
||||||
app:layout_constrainedWidth="true"
|
app:layout_constrainedWidth="true"
|
||||||
@@ -65,6 +70,9 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="16dp"
|
android:layout_marginStart="16dp"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
|
android:maxWidth="170dp"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
android:textSize="?attr/font_default"
|
android:textSize="?attr/font_default"
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
@@ -78,6 +86,8 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
android:textSize="?attr/font_default"
|
android:textSize="?attr/font_default"
|
||||||
app:layout_constrainedWidth="true"
|
app:layout_constrainedWidth="true"
|
||||||
|
|||||||
@@ -28,6 +28,8 @@
|
|||||||
android:layout_marginTop="@dimen/nav_header_vertical_spacing"
|
android:layout_marginTop="@dimen/nav_header_vertical_spacing"
|
||||||
android:layout_marginStart="16dp"
|
android:layout_marginStart="16dp"
|
||||||
android:layout_marginEnd="16dp"
|
android:layout_marginEnd="16dp"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
android:layout_alignParentStart="true"
|
android:layout_alignParentStart="true"
|
||||||
android:textSize="?attr/font_default"
|
android:textSize="?attr/font_default"
|
||||||
android:fontFamily="?attr/font_family"
|
android:fontFamily="?attr/font_family"
|
||||||
@@ -40,6 +42,8 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="16dp"
|
android:layout_marginStart="16dp"
|
||||||
android:layout_marginEnd="16dp"
|
android:layout_marginEnd="16dp"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
android:layout_alignParentStart="true"
|
android:layout_alignParentStart="true"
|
||||||
android:layout_below="@id/name_text_view_nav_header_main"
|
android:layout_below="@id/name_text_view_nav_header_main"
|
||||||
android:layout_toStartOf="@id/account_switcher_image_view_nav_header_main"
|
android:layout_toStartOf="@id/account_switcher_image_view_nav_header_main"
|
||||||
|
|||||||
@@ -397,7 +397,7 @@
|
|||||||
<string name="settings_community_summary">!eternityapp@lemdro.id</string>
|
<string name="settings_community_summary">!eternityapp@lemdro.id</string>
|
||||||
<string name="settings_share_title">Teilen</string>
|
<string name="settings_share_title">Teilen</string>
|
||||||
<string name="settings_share_summary">Teile diese App mit anderen Leuten, wenn sie dir gefällt</string>
|
<string name="settings_share_summary">Teile diese App mit anderen Leuten, wenn sie dir gefällt</string>
|
||||||
<string name="settings_version_title">Infinity For Reddit</string>
|
<string name="settings_version_title">Eternity</string>
|
||||||
<string name="settings_version_summary">Version %s</string>
|
<string name="settings_version_summary">Version %s</string>
|
||||||
<string name="settings_category_customization_title">Anpassung</string>
|
<string name="settings_category_customization_title">Anpassung</string>
|
||||||
<string name="settings_customize_light_theme_title">Helles Thema</string>
|
<string name="settings_customize_light_theme_title">Helles Thema</string>
|
||||||
@@ -1203,11 +1203,11 @@
|
|||||||
<string name="settings_custom_content_font_family_title">Benutzerdefinierte Inhaltschriftart-familie</string>
|
<string name="settings_custom_content_font_family_title">Benutzerdefinierte Inhaltschriftart-familie</string>
|
||||||
<string name="settings_fixed_height_preview_in_card_title">Festgestellte Höhe in Kartenansicht</string>
|
<string name="settings_fixed_height_preview_in_card_title">Festgestellte Höhe in Kartenansicht</string>
|
||||||
<string name="settings_hide_text_post_content">Text-Post Inhalt verstecken</string>
|
<string name="settings_hide_text_post_content">Text-Post Inhalt verstecken</string>
|
||||||
<string name="settings_hide_comment_awards_title">"Kommentarauszeichnungen verstecken "</string>
|
<string name="settings_hide_comment_awards_title">Kommentarauszeichnungen verstecken</string>
|
||||||
<string name="settings_show_fewer_toolbar_options_threshold_title">Weniger Werkzeugleistenoptionen anzeigen</string>
|
<string name="settings_show_fewer_toolbar_options_threshold_title">Weniger Werkzeugleistenoptionen anzeigen</string>
|
||||||
<string name="settings_show_fewer_toolbar_options_threshold_summary">Wert %1$d</string>
|
<string name="settings_show_fewer_toolbar_options_threshold_summary">Wert %1$d</string>
|
||||||
<string name="settings_show_author_avatar_title">Autoravatar zeigen</string>
|
<string name="settings_show_author_avatar_title">Autoravatar zeigen</string>
|
||||||
<string name="settings_reddit_user_agreement_title">"Lemmy Nutzungsbestimmungen "</string>
|
<string name="settings_reddit_user_agreement_title">Lemmy Nutzungsbestimmungen</string>
|
||||||
<string name="settings_always_show_child_comment_count_title">Immer die Anzahl von untergeordneten Kommentaren anzeigen</string>
|
<string name="settings_always_show_child_comment_count_title">Immer die Anzahl von untergeordneten Kommentaren anzeigen</string>
|
||||||
<string name="settings_hide_upvote_ratio_title">Upvoteverhaltnis verstecken</string>
|
<string name="settings_hide_upvote_ratio_title">Upvoteverhaltnis verstecken</string>
|
||||||
<string name="settings_miscellaneous_dangerous_group_title">Gefährlich</string>
|
<string name="settings_miscellaneous_dangerous_group_title">Gefährlich</string>
|
||||||
@@ -1223,7 +1223,7 @@
|
|||||||
<string name="user_agreement_dialog_title">Nutzungsbedingungen</string>
|
<string name="user_agreement_dialog_title">Nutzungsbedingungen</string>
|
||||||
<string name="user_agreement_message">Du musst Reddit Nutzungsbedingungen (%1$s) und Infinity for reddit\'s Datenschutz-Bestimmungen (%2$s) zustimmen bevor du dich anmelden kannst.</string>
|
<string name="user_agreement_message">Du musst Reddit Nutzungsbedingungen (%1$s) und Infinity for reddit\'s Datenschutz-Bestimmungen (%2$s) zustimmen bevor du dich anmelden kannst.</string>
|
||||||
<string name="agree">Zustimmen</string>
|
<string name="agree">Zustimmen</string>
|
||||||
<string name="do_not_agree">"Nicht zustimmen "</string>
|
<string name="do_not_agree">Nicht zustimmen</string>
|
||||||
<string name="option_1_hint">Option 1 (notwendig)</string>
|
<string name="option_1_hint">Option 1 (notwendig)</string>
|
||||||
<string name="option_2_hint">Option 2 (notwendig)</string>
|
<string name="option_2_hint">Option 2 (notwendig)</string>
|
||||||
<string name="option_3_hint">Option 3</string>
|
<string name="option_3_hint">Option 3</string>
|
||||||
|
|||||||
@@ -408,7 +408,7 @@
|
|||||||
<string name="settings_community_summary">!eternityapp@lemdro.id</string>
|
<string name="settings_community_summary">!eternityapp@lemdro.id</string>
|
||||||
<string name="settings_share_title">Partager</string>
|
<string name="settings_share_title">Partager</string>
|
||||||
<string name="settings_share_summary">Partagez cette application avec d\'autres si vous l\'appréciez</string>
|
<string name="settings_share_summary">Partagez cette application avec d\'autres si vous l\'appréciez</string>
|
||||||
<string name="settings_version_title">Infinity pour Reddit</string>
|
<string name="settings_version_title">Eternity</string>
|
||||||
<string name="settings_version_summary">Version %s</string>
|
<string name="settings_version_summary">Version %s</string>
|
||||||
<string name="settings_category_customization_title">Personnalisations</string>
|
<string name="settings_category_customization_title">Personnalisations</string>
|
||||||
<string name="settings_customize_light_theme_title">Thème clair</string>
|
<string name="settings_customize_light_theme_title">Thème clair</string>
|
||||||
@@ -473,7 +473,7 @@
|
|||||||
<string name="error_getting_multi_reddit_data">Erreur de récupération des données de la multi-communauté</string>
|
<string name="error_getting_multi_reddit_data">Erreur de récupération des données de la multi-communauté</string>
|
||||||
<string name="error_loading_multi_reddit_list">Impossible de synchroniser les multi-communautés</string>
|
<string name="error_loading_multi_reddit_list">Impossible de synchroniser les multi-communautés</string>
|
||||||
<string name="error_loading_subscriptions">Impossible de synchroniser les abonnements</string>
|
<string name="error_loading_subscriptions">Impossible de synchroniser les abonnements</string>
|
||||||
<string name="share_this_app">Essaie Infinity pour Lemmy, un super client Lemmy !
|
<string name="share_this_app">Essaie Eternity, un super client Lemmy !
|
||||||
\nhttps://play.google.com/store/apps/details\?id=eu.toldi.infinityforlemmy</string>
|
\nhttps://play.google.com/store/apps/details\?id=eu.toldi.infinityforlemmy</string>
|
||||||
<string name="error_getting_community_name">Impossible de récupérer le nom de la communauté</string>
|
<string name="error_getting_community_name">Impossible de récupérer le nom de la communauté</string>
|
||||||
<string name="share_post_link">Partager le lien du post</string>
|
<string name="share_post_link">Partager le lien du post</string>
|
||||||
@@ -728,7 +728,7 @@ https://s3.eu-west-1.amazonaws.com/po-pub/i/dFZKKms9HbrDGOlcgW9QTcwF.jpg -->
|
|||||||
<!-- Fuzzy -->
|
<!-- Fuzzy -->
|
||||||
<string name="reset_all_settings_success">Réinitialisation des paramètres réussie</string>
|
<string name="reset_all_settings_success">Réinitialisation des paramètres réussie</string>
|
||||||
<string name="username_preview">u/Hostilenemy</string>
|
<string name="username_preview">u/Hostilenemy</string>
|
||||||
<string name="community_preview">r/Infinity_For_Reddit</string>
|
<string name="community_preview">!eternityapp@lemdro.id</string>
|
||||||
<string name="primary_text_preview">Texte principal</string>
|
<string name="primary_text_preview">Texte principal</string>
|
||||||
<string name="secondary_text_preview">Texte secondaire</string>
|
<string name="secondary_text_preview">Texte secondaire</string>
|
||||||
<string name="post_title_preview">C\'est une publication</string>
|
<string name="post_title_preview">C\'est une publication</string>
|
||||||
@@ -1226,4 +1226,32 @@ https://s3.eu-west-1.amazonaws.com/po-pub/i/dFZKKms9HbrDGOlcgW9QTcwF.jpg -->
|
|||||||
<string name="app_lock_timeout_immediately">Immédiatement</string>
|
<string name="app_lock_timeout_immediately">Immédiatement</string>
|
||||||
<string name="settings_save_nsfw_media_in_different_folder_title">Sauvegarder les médias NSFW à un autre endroit</string>
|
<string name="settings_save_nsfw_media_in_different_folder_title">Sauvegarder les médias NSFW à un autre endroit</string>
|
||||||
<string name="settings_app_lock_timeout_title">Expiration du verrouillage de l\'application</string>
|
<string name="settings_app_lock_timeout_title">Expiration du verrouillage de l\'application</string>
|
||||||
|
<string name="active_users_number_detail">%1$,d utilisateurs actifs</string>
|
||||||
|
<string name="message_change_avatar_success">Avatar modifié</string>
|
||||||
|
<string name="message_change_avatar_failed">Échec de la modification de l’avatar %s</string>
|
||||||
|
<string name="unable_to_get_font_file">Impossible d’obtenir votre police</string>
|
||||||
|
<string name="user_agreement_message">Vous devez accepter le contrat d’utilisation de Reddit (%1$s) et la politique de confidentialité d’Infinity pour Reddit (%2$s) avant de vous connecter.</string>
|
||||||
|
<string name="user_agreement_dialog_title">Contrat d’utilisateur</string>
|
||||||
|
<string name="agree">J’accepte</string>
|
||||||
|
<string name="post_count_detail">%1$,d publications</string>
|
||||||
|
<string name="comment_count_detail">%1$,d commentaires</string>
|
||||||
|
<string name="message_change_banner_success">Bannière modifiée</string>
|
||||||
|
<string name="message_change_banner_failed">Échec de la modification de la bannière %s</string>
|
||||||
|
<string name="message_save_profile_success">Profil enregistré</string>
|
||||||
|
<string name="message_save_profile_failed">Échec de l’enregistrement du profil %s</string>
|
||||||
|
<string name="select_a_ttf_font">Sélectionnez un fichier de police TTF</string>
|
||||||
|
<string name="unable_to_load_font">Impossible de charger votre police personnalisée</string>
|
||||||
|
<string name="unable_to_copy_font_file">Impossible de copier votre police</string>
|
||||||
|
<string name="reddit_gallery_item_caption_hint">Légende (180 caractères max)</string>
|
||||||
|
<string name="reddit_gallery_item_url_hint">URL</string>
|
||||||
|
<string name="do_not_agree">Je refuse</string>
|
||||||
|
<string name="option_1_hint">Option 1 (Requise)</string>
|
||||||
|
<string name="option_2_hint">Option 2 (Requise)</string>
|
||||||
|
<string name="option_3_hint">Option 3</string>
|
||||||
|
<string name="option_4_hint">Option 4</string>
|
||||||
|
<string name="option_5_hint">Option 5</string>
|
||||||
|
<string name="option_6_hint">Option 6</string>
|
||||||
|
<string name="not_a_valid_number">Nombre non valide</string>
|
||||||
|
<string name="post_karma">Karma de la publication :</string>
|
||||||
|
<string name="comment_karma">Karma du commentaire :</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -861,7 +861,7 @@
|
|||||||
<string name="multireddit_selection_activity_label">Multireddit kiválasztása</string>
|
<string name="multireddit_selection_activity_label">Multireddit kiválasztása</string>
|
||||||
<string name="action_save_to_database">Mentés adatbázisba</string>
|
<string name="action_save_to_database">Mentés adatbázisba</string>
|
||||||
<string name="action_read_all_messages">Összes üzenet olvasása</string>
|
<string name="action_read_all_messages">Összes üzenet olvasása</string>
|
||||||
<string name="action_add_to_multireddit">Multireddithez adás</string>
|
<string name="action_add_to_multireddit">Mulitközösséghez adás</string>
|
||||||
<string name="search_only_communities_hint">Közösségek keresése</string>
|
<string name="search_only_communities_hint">Közösségek keresése</string>
|
||||||
<string name="search_only_users_hint">Felhasználók keresése</string>
|
<string name="search_only_users_hint">Felhasználók keresése</string>
|
||||||
<string name="post_type_gif">Gif</string>
|
<string name="post_type_gif">Gif</string>
|
||||||
@@ -1052,4 +1052,10 @@
|
|||||||
<string name="mark_post_as_read_failed">Nem sikerült a posztot olvasottként megjelölni</string>
|
<string name="mark_post_as_read_failed">Nem sikerült a posztot olvasottként megjelölni</string>
|
||||||
<string name="user_2fa_token">2FA token (ha szükséges)</string>
|
<string name="user_2fa_token">2FA token (ha szükséges)</string>
|
||||||
<string name="instance_url_hint">Az Ön által preferált Lemmy példány URL címe a https:// előtaggal vagy anélkül.</string>
|
<string name="instance_url_hint">Az Ön által preferált Lemmy példány URL címe a https:// előtaggal vagy anélkül.</string>
|
||||||
|
<string name="settings_category_community_and_user_pages_title">Közösségi és Felhasználói oldalak</string>
|
||||||
|
<string name="settings_show_statistics">Statisztikák mutatása</string>
|
||||||
|
<string name="moderators">Moderátorok</string>
|
||||||
|
<string name="admins">Adminok</string>
|
||||||
|
<string name="settings_hide_user_instance">Felhasználó példányának elrejtése</string>
|
||||||
|
<string name="report_post">Poszt jelentése</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -110,7 +110,7 @@
|
|||||||
<string name="saved">Guardado</string>
|
<string name="saved">Guardado</string>
|
||||||
<string name="gilded">Dourado</string>
|
<string name="gilded">Dourado</string>
|
||||||
<string name="settings">Definições</string>
|
<string name="settings">Definições</string>
|
||||||
<string name="subscribers_number_detail">Membros: %1$,d</string>
|
<string name="subscribers_number_detail">%1$,d Membros</string>
|
||||||
<string name="online_subscribers_number_detail">Online: %1$,d</string>
|
<string name="online_subscribers_number_detail">Online: %1$,d</string>
|
||||||
<string name="cannot_fetch_community_info">Não é possível obter informações da comunidade</string>
|
<string name="cannot_fetch_community_info">Não é possível obter informações da comunidade</string>
|
||||||
<string name="cannot_fetch_user_info">Não é possível obter informações do utilizador</string>
|
<string name="cannot_fetch_user_info">Não é possível obter informações do utilizador</string>
|
||||||
@@ -680,7 +680,7 @@
|
|||||||
<string name="delete_all_front_page_scrolled_positions_success">Eliminação das posições de deslizamento com sucesso</string>
|
<string name="delete_all_front_page_scrolled_positions_success">Eliminação das posições de deslizamento com sucesso</string>
|
||||||
<string name="reset_all_settings_success">Todas as definições repostas com sucesso</string>
|
<string name="reset_all_settings_success">Todas as definições repostas com sucesso</string>
|
||||||
<string name="username_preview">u/Hostilenemy</string>
|
<string name="username_preview">u/Hostilenemy</string>
|
||||||
<string name="community_preview">c/infinityforlemmy</string>
|
<string name="community_preview">!eternityapp@lemdro.id</string>
|
||||||
<string name="primary_text_preview">Texto Principal</string>
|
<string name="primary_text_preview">Texto Principal</string>
|
||||||
<string name="secondary_text_preview">Texto Secundário</string>
|
<string name="secondary_text_preview">Texto Secundário</string>
|
||||||
<string name="post_title_preview">Isto é uma publicação</string>
|
<string name="post_title_preview">Isto é uma publicação</string>
|
||||||
@@ -1264,4 +1264,16 @@
|
|||||||
<string name="display_name_description">Isto será apresentado aos visualizadores da sua página de perfil e não altera o seu nome de utilizador.</string>
|
<string name="display_name_description">Isto será apresentado aos visualizadores da sua página de perfil e não altera o seu nome de utilizador.</string>
|
||||||
<string name="reddit_gallery_item_caption_hint">Legenda (máx. 180 caracteres)</string>
|
<string name="reddit_gallery_item_caption_hint">Legenda (máx. 180 caracteres)</string>
|
||||||
<string name="action_unblock_user">Desbloquear Utilizador</string>
|
<string name="action_unblock_user">Desbloquear Utilizador</string>
|
||||||
|
<string name="settings_show_statistics">Mostrar Estatísticas</string>
|
||||||
|
<string name="active_users_number_detail">%1$,d Utilizadores Ativos</string>
|
||||||
|
<string name="comment_count_detail">%1$,d Comentários</string>
|
||||||
|
<string name="settings_category_community_and_user_pages_title">Paginas da comunidade e do utilizador</string>
|
||||||
|
<string name="settings_show_post_and_comment_score">Mostrar pontuações de publicações e comentários</string>
|
||||||
|
<string name="moderators">Moderadores</string>
|
||||||
|
<string name="report_post">Denunciar publicação</string>
|
||||||
|
<string name="separate_down_and_up_votes">Votos Positivos e Negativos separados</string>
|
||||||
|
<string name="settings_show_display_name_instead_of_user_name">Mostrar nomes de exibição da comunidade e do utilizador</string>
|
||||||
|
<string name="settings_hide_community_and_user_instance">Ocultar instância da comunidade e do utilizador</string>
|
||||||
|
<string name="post_count_detail">%1$,d Publicações</string>
|
||||||
|
<string name="send_report">Enviar Denuncia</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -144,7 +144,7 @@
|
|||||||
<string name="send_message_content_hint">Повідомлення</string>
|
<string name="send_message_content_hint">Повідомлення</string>
|
||||||
<string name="reply_message_failed">Не вдалося відповісти на це повідомлення</string>
|
<string name="reply_message_failed">Не вдалося відповісти на це повідомлення</string>
|
||||||
<string name="error_getting_message">Помилка отримання цього повідомлення</string>
|
<string name="error_getting_message">Помилка отримання цього повідомлення</string>
|
||||||
<string name="message_username_required">Чуєш, кому ти хочеш надіслати це повідомлення\?</string>
|
<string name="message_username_required">Кому ж Ви хочете надіслати це повідомлення\?</string>
|
||||||
<string name="message_subject_required">Ваше повідомлення повинно мати тему</string>
|
<string name="message_subject_required">Ваше повідомлення повинно мати тему</string>
|
||||||
<string name="message_content_required">Отримувачу треба щось написати</string>
|
<string name="message_content_required">Отримувачу треба щось написати</string>
|
||||||
<string name="sending_message">Надсилання</string>
|
<string name="sending_message">Надсилання</string>
|
||||||
@@ -152,7 +152,7 @@
|
|||||||
<string name="send_message_failed">Не вдалося надіслати це повідомлення</string>
|
<string name="send_message_failed">Не вдалося надіслати це повідомлення</string>
|
||||||
<string name="select_a_community">Спочатку оберіть спільноту</string>
|
<string name="select_a_community">Спочатку оберіть спільноту</string>
|
||||||
<string name="title_required">Допису треба дати хороший заголовок</string>
|
<string name="title_required">Допису треба дати хороший заголовок</string>
|
||||||
<string name="link_required">Чуєш, де посилання\?</string>
|
<string name="link_required">Де ж посилання\?</string>
|
||||||
<string name="select_an_image">Спочатку оберіть зображення</string>
|
<string name="select_an_image">Спочатку оберіть зображення</string>
|
||||||
<string name="posting">Публікування</string>
|
<string name="posting">Публікування</string>
|
||||||
<string name="post_failed">Не вдалося це опублікувати</string>
|
<string name="post_failed">Не вдалося це опублікувати</string>
|
||||||
@@ -1271,4 +1271,16 @@
|
|||||||
<string name="enable_random_adaptation">Увімкнути випадкову адаптацію</string>
|
<string name="enable_random_adaptation">Увімкнути випадкову адаптацію</string>
|
||||||
<string name="handle_link">Обробка посилань</string>
|
<string name="handle_link">Обробка посилань</string>
|
||||||
<string name="sample_list_load_error">Не вдалося завантажити один або кілька списків зразків</string>
|
<string name="sample_list_load_error">Не вдалося завантажити один або кілька списків зразків</string>
|
||||||
|
<string name="community_number_detail">%1$,d спільнот</string>
|
||||||
|
<string name="settings_hide_user_instance">Ховати сервер користувача</string>
|
||||||
|
<string name="user_number_detail">%1$,d користувачів</string>
|
||||||
|
<string name="admins">Адміністратори</string>
|
||||||
|
<string name="reddit_api_info">Починаючи з 1 липня 2023 року, API Reddit стане платним за використання для сторонніх клієнтів, зокрема Infinity for Reddit. Оголошення від Reddit можна знайти тут: %1$s
|
||||||
|
\n
|
||||||
|
\nЩоб пережити цю зміну, після 1 липня Infinity стане додатком лише за підпискою. Більше про зміни можна дізнатися з цієї публікації: %2$s
|
||||||
|
\n
|
||||||
|
\nПісля 1 липня Infinity необхідно оновити, щоб отримати нову версію з можливістю підписки. Жодна з попередніх версій (включаючи цю) не працюватиме після 1 липня. Але через стислі терміни, надані Reddit, оновлення може не бути доступним одразу 1 липня, оскільки воно потребує належного тестування. Дякуємо за розуміння!</string>
|
||||||
|
<string name="theme_name_dayfox">Dayfox</string>
|
||||||
|
<string name="theme_name_carbonfox">Carbonfox</string>
|
||||||
|
<string name="theme_name_nightfox">Nightfox</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||||
<string name="application_name" translatable="false">Eternity</string>
|
<string name="application_name" translatable="false">Eternity</string>
|
||||||
<string name="login_activity_label">Login</string>
|
<string name="login_activity_label">Login</string>
|
||||||
@@ -84,7 +85,7 @@
|
|||||||
<string name="action_give_award">Give Award</string>
|
<string name="action_give_award">Give Award</string>
|
||||||
<string name="action_save_to_database">Save to Database</string>
|
<string name="action_save_to_database">Save to Database</string>
|
||||||
<string name="action_read_all_messages">Read All Messages</string>
|
<string name="action_read_all_messages">Read All Messages</string>
|
||||||
<string name="action_add_to_multireddit">Add to Multicommuity</string>
|
<string name="action_add_to_multireddit">Add to Multicommunity</string>
|
||||||
<string name="action_share_link">Share Link</string>
|
<string name="action_share_link">Share Link</string>
|
||||||
<string name="action_copy_link">Copy Link</string>
|
<string name="action_copy_link">Copy Link</string>
|
||||||
<string name="action_open_external_browser">Open in browser</string>
|
<string name="action_open_external_browser">Open in browser</string>
|
||||||
@@ -135,7 +136,7 @@
|
|||||||
|
|
||||||
<string name="profile">Profile</string>
|
<string name="profile">Profile</string>
|
||||||
<string name="subscriptions">Subscriptions</string>
|
<string name="subscriptions">Subscriptions</string>
|
||||||
<string name="multi_reddit">Multicommuity</string>
|
<string name="multi_reddit">Multicommunity</string>
|
||||||
<string name="history">History</string>
|
<string name="history">History</string>
|
||||||
<string name="inbox">Inbox</string>
|
<string name="inbox">Inbox</string>
|
||||||
<string name="inbox_with_count">Inbox (%1$,d)</string>
|
<string name="inbox_with_count">Inbox (%1$,d)</string>
|
||||||
@@ -1383,4 +1384,6 @@
|
|||||||
<string name="moderators">Moderators</string>
|
<string name="moderators">Moderators</string>
|
||||||
<string name="admins">Admins</string>
|
<string name="admins">Admins</string>
|
||||||
<string name="settings_hide_user_instance">Hide user instance</string>
|
<string name="settings_hide_user_instance">Hide user instance</string>
|
||||||
|
<string name="share_links_on_your_local_instance_rather_than_the_original_creation_instance">Share links on your local instance rather than the original creation instance.</string>
|
||||||
|
<string name="share_links_on_your_local_instance">Share links on your local instance</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -46,6 +46,12 @@
|
|||||||
app:title="@string/anonymous_account_instance"
|
app:title="@string/anonymous_account_instance"
|
||||||
app:useSimpleSummaryProvider="true" />
|
app:useSimpleSummaryProvider="true" />
|
||||||
|
|
||||||
|
<eu.toldi.infinityforlemmy.customviews.CustomFontSwitchPreference
|
||||||
|
app:defaultValue="false"
|
||||||
|
app:key="share_link_on_local_instance"
|
||||||
|
app:title="@string/share_links_on_your_local_instance"
|
||||||
|
app:summary="@string/share_links_on_your_local_instance_rather_than_the_original_creation_instance" />
|
||||||
|
|
||||||
<eu.toldi.infinityforlemmy.customviews.CustomFontPreferenceCategory app:title="@string/settings_miscellaneous_dangerous_group_title" />
|
<eu.toldi.infinityforlemmy.customviews.CustomFontPreferenceCategory app:title="@string/settings_miscellaneous_dangerous_group_title" />
|
||||||
|
|
||||||
<eu.toldi.infinityforlemmy.customviews.CustomFontPreference
|
<eu.toldi.infinityforlemmy.customviews.CustomFontPreference
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.9 MiB |
|
Before Width: | Height: | Size: 292 KiB After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 402 KiB After Width: | Height: | Size: 1.8 MiB |
BIN
fastlane/metadata/android/en-US/images/phoneScreenshots/4.png
Normal file
|
After Width: | Height: | Size: 865 KiB |
BIN
fastlane/metadata/android/en-US/images/phoneScreenshots/5.png
Normal file
|
After Width: | Height: | Size: 1.8 MiB |