mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2025-02-06 14:44:53 +01:00
Show correct karma in ViewUserDetailActivity. Show a warning if nsfw is enabled while the user is over_18 in ViewUserDetailActivity.
This commit is contained in:
parent
24ae2d85a2
commit
232ea91d32
@ -149,6 +149,9 @@ public class ViewUserDetailActivity extends BaseActivity implements SortTypeSele
|
|||||||
@Named("post_layout")
|
@Named("post_layout")
|
||||||
SharedPreferences mPostLayoutSharedPreferences;
|
SharedPreferences mPostLayoutSharedPreferences;
|
||||||
@Inject
|
@Inject
|
||||||
|
@Named("nsfw_and_spoiler")
|
||||||
|
SharedPreferences mNsfwAndSpoilerSharedPreferences;
|
||||||
|
@Inject
|
||||||
CustomThemeWrapper mCustomThemeWrapper;
|
CustomThemeWrapper mCustomThemeWrapper;
|
||||||
public UserViewModel userViewModel;
|
public UserViewModel userViewModel;
|
||||||
private FragmentManager fragmentManager;
|
private FragmentManager fragmentManager;
|
||||||
@ -179,6 +182,7 @@ public class ViewUserDetailActivity extends BaseActivity implements SortTypeSele
|
|||||||
private String mMessageFullname;
|
private String mMessageFullname;
|
||||||
private String mNewAccountName;
|
private String mNewAccountName;
|
||||||
private SlidrInterface mSlidrInterface;
|
private SlidrInterface mSlidrInterface;
|
||||||
|
private MaterialAlertDialogBuilder nsfwWarningBuilder;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@ -417,7 +421,7 @@ public class ViewUserDetailActivity extends BaseActivity implements SortTypeSele
|
|||||||
if (!title.equals(userFullName)) {
|
if (!title.equals(userFullName)) {
|
||||||
getSupportActionBar().setTitle(userFullName);
|
getSupportActionBar().setTitle(userFullName);
|
||||||
}
|
}
|
||||||
String karma = getString(R.string.karma_info_user_detail, userData.getKarma(), userData.getLinkKarma(), userData.getCommentKarma());
|
String karma = getString(R.string.karma_info_user_detail, userData.getTotalKarma(), userData.getLinkKarma(), userData.getCommentKarma());
|
||||||
karmaTextView.setText(karma);
|
karmaTextView.setText(karma);
|
||||||
cakedayTextView.setText(getString(R.string.cakeday_info, new SimpleDateFormat("MMM d, yyyy",
|
cakedayTextView.setText(getString(R.string.cakeday_info, new SimpleDateFormat("MMM d, yyyy",
|
||||||
locale).format(userData.getCakeday())));
|
locale).format(userData.getCakeday())));
|
||||||
@ -428,6 +432,21 @@ public class ViewUserDetailActivity extends BaseActivity implements SortTypeSele
|
|||||||
descriptionTextView.setVisibility(View.VISIBLE);
|
descriptionTextView.setVisibility(View.VISIBLE);
|
||||||
descriptionTextView.setText(userData.getDescription());
|
descriptionTextView.setText(userData.getDescription());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (userData.isNSFW()) {
|
||||||
|
if (nsfwWarningBuilder == null
|
||||||
|
&& !mNsfwAndSpoilerSharedPreferences.getBoolean((mAccountName == null ? "" : mAccountName) + SharedPreferencesUtils.NSFW_BASE, false)) {
|
||||||
|
nsfwWarningBuilder = new MaterialAlertDialogBuilder(this, R.style.MaterialAlertDialogTheme)
|
||||||
|
.setTitle(R.string.warning)
|
||||||
|
.setMessage(R.string.this_user_has_nsfw_content)
|
||||||
|
.setPositiveButton(R.string.leave, (dialogInterface, i)
|
||||||
|
-> {
|
||||||
|
finish();
|
||||||
|
})
|
||||||
|
.setNegativeButton(R.string.dismiss, null);
|
||||||
|
nsfwWarningBuilder.show();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ import ml.docilealligator.infinityforreddit.User.UserDao;
|
|||||||
import ml.docilealligator.infinityforreddit.User.UserData;
|
import ml.docilealligator.infinityforreddit.User.UserData;
|
||||||
|
|
||||||
@Database(entities = {Account.class, SubredditData.class, SubscribedSubredditData.class, UserData.class,
|
@Database(entities = {Account.class, SubredditData.class, SubscribedSubredditData.class, UserData.class,
|
||||||
SubscribedUserData.class, MultiReddit.class, CustomTheme.class, RecentSearchQuery.class}, version = 10)
|
SubscribedUserData.class, MultiReddit.class, CustomTheme.class, RecentSearchQuery.class}, version = 11)
|
||||||
public abstract class RedditDataRoomDatabase extends RoomDatabase {
|
public abstract class RedditDataRoomDatabase extends RoomDatabase {
|
||||||
private static RedditDataRoomDatabase INSTANCE;
|
private static RedditDataRoomDatabase INSTANCE;
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ public abstract class RedditDataRoomDatabase extends RoomDatabase {
|
|||||||
RedditDataRoomDatabase.class, "reddit_data")
|
RedditDataRoomDatabase.class, "reddit_data")
|
||||||
.addMigrations(MIGRATION_1_2, MIGRATION_2_3, MIGRATION_3_4, MIGRATION_4_5,
|
.addMigrations(MIGRATION_1_2, MIGRATION_2_3, MIGRATION_3_4, MIGRATION_4_5,
|
||||||
MIGRATION_5_6, MIGRATION_6_7, MIGRATION_7_8, MIGRATION_8_9,
|
MIGRATION_5_6, MIGRATION_6_7, MIGRATION_7_8, MIGRATION_8_9,
|
||||||
MIGRATION_9_10)
|
MIGRATION_9_10, MIGRATION_10_11)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -229,4 +229,18 @@ public abstract class RedditDataRoomDatabase extends RoomDatabase {
|
|||||||
+ " ADD COLUMN over18 INTEGER DEFAULT 0 NOT NULL");
|
+ " ADD COLUMN over18 INTEGER DEFAULT 0 NOT NULL");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private static final Migration MIGRATION_10_11 = new Migration(10, 11) {
|
||||||
|
@Override
|
||||||
|
public void migrate(@NonNull SupportSQLiteDatabase database) {
|
||||||
|
database.execSQL("ALTER TABLE users"
|
||||||
|
+ " ADD COLUMN awarder_karma INTEGER DEFAULT 0 NOT NULL");
|
||||||
|
database.execSQL("ALTER TABLE users"
|
||||||
|
+ " ADD COLUMN awardee_karma INTEGER DEFAULT 0 NOT NULL");
|
||||||
|
database.execSQL("ALTER TABLE users"
|
||||||
|
+ " ADD COLUMN total_karma INTEGER DEFAULT 0 NOT NULL");
|
||||||
|
database.execSQL("ALTER TABLE users"
|
||||||
|
+ " ADD COLUMN over_18 INTEGER DEFAULT 0 NOT NULL");
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@ -37,13 +37,17 @@ public class ParseUserData {
|
|||||||
}
|
}
|
||||||
int linkKarma = userDataJson.getInt(JSONUtils.LINK_KARMA_KEY);
|
int linkKarma = userDataJson.getInt(JSONUtils.LINK_KARMA_KEY);
|
||||||
int commentKarma = userDataJson.getInt(JSONUtils.COMMENT_KARMA_KEY);
|
int commentKarma = userDataJson.getInt(JSONUtils.COMMENT_KARMA_KEY);
|
||||||
|
int awarderKarma = userDataJson.getInt(JSONUtils.AWARDER_KARMA_KEY);
|
||||||
|
int awardeeKarma = userDataJson.getInt(JSONUtils.AWARDEE_KARMA_KEY);
|
||||||
|
int totalKarma = userDataJson.getInt(JSONUtils.TOTAL_KARMA_KEY);
|
||||||
long cakeday = userDataJson.getLong(JSONUtils.CREATED_UTC_KEY) * 1000;
|
long cakeday = userDataJson.getLong(JSONUtils.CREATED_UTC_KEY) * 1000;
|
||||||
boolean isGold = userDataJson.getBoolean(JSONUtils.IS_GOLD_KEY);
|
boolean isGold = userDataJson.getBoolean(JSONUtils.IS_GOLD_KEY);
|
||||||
boolean isFriend = userDataJson.getBoolean(JSONUtils.IS_FRIEND_KEY);
|
boolean isFriend = userDataJson.getBoolean(JSONUtils.IS_FRIEND_KEY);
|
||||||
|
boolean isNsfw = userDataJson.getJSONObject(JSONUtils.SUBREDDIT_KEY).getBoolean(JSONUtils.OVER_18_KEY);
|
||||||
String description = userDataJson.getJSONObject(JSONUtils.SUBREDDIT_KEY).getString(JSONUtils.PUBLIC_DESCRIPTION_KEY);
|
String description = userDataJson.getJSONObject(JSONUtils.SUBREDDIT_KEY).getString(JSONUtils.PUBLIC_DESCRIPTION_KEY);
|
||||||
|
|
||||||
return new UserData(userName, iconImageUrl, bannerImageUrl, linkKarma, commentKarma, cakeday,
|
return new UserData(userName, iconImageUrl, bannerImageUrl, linkKarma, commentKarma, awarderKarma,
|
||||||
isGold, isFriend, canBeFollowed, description);
|
awardeeKarma, totalKarma, cakeday, isGold, isFriend, canBeFollowed, isNsfw, description);
|
||||||
}
|
}
|
||||||
|
|
||||||
interface ParseUserDataListener {
|
interface ParseUserDataListener {
|
||||||
|
@ -19,6 +19,12 @@ public class UserData {
|
|||||||
private int linkKarma;
|
private int linkKarma;
|
||||||
@ColumnInfo(name = "comment_karma")
|
@ColumnInfo(name = "comment_karma")
|
||||||
private int commentKarma;
|
private int commentKarma;
|
||||||
|
@ColumnInfo(name = "awarder_karma")
|
||||||
|
private int awarderKarma;
|
||||||
|
@ColumnInfo(name = "awardee_karma")
|
||||||
|
private int awardeeKarma;
|
||||||
|
@ColumnInfo(name = "total_karma")
|
||||||
|
private int totalKarma;
|
||||||
@ColumnInfo(name = "created_utc")
|
@ColumnInfo(name = "created_utc")
|
||||||
private long cakeday;
|
private long cakeday;
|
||||||
@ColumnInfo(name = "is_gold")
|
@ColumnInfo(name = "is_gold")
|
||||||
@ -27,20 +33,27 @@ public class UserData {
|
|||||||
private boolean isFriend;
|
private boolean isFriend;
|
||||||
@ColumnInfo(name = "can_be_followed")
|
@ColumnInfo(name = "can_be_followed")
|
||||||
private boolean canBeFollowed;
|
private boolean canBeFollowed;
|
||||||
|
@ColumnInfo(name = "over_18")
|
||||||
|
private boolean isNSFW;
|
||||||
@ColumnInfo(name = "description")
|
@ColumnInfo(name = "description")
|
||||||
private String description;
|
private String description;
|
||||||
|
|
||||||
public UserData(@NonNull String name, String iconUrl, String banner, int linkKarma, int commentKarma,
|
public UserData(@NonNull String name, String iconUrl, String banner, int linkKarma, int commentKarma,
|
||||||
long cakeday, boolean isGold, boolean isFriend, boolean canBeFollowed, String description) {
|
int awarderKarma, int awardeeKarma, int totalKarma, long cakeday, boolean isGold,
|
||||||
|
boolean isFriend, boolean canBeFollowed, boolean isNSFW, String description) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.iconUrl = iconUrl;
|
this.iconUrl = iconUrl;
|
||||||
this.banner = banner;
|
this.banner = banner;
|
||||||
this.commentKarma = commentKarma;
|
this.commentKarma = commentKarma;
|
||||||
this.linkKarma = linkKarma;
|
this.linkKarma = linkKarma;
|
||||||
|
this.awarderKarma = awarderKarma;
|
||||||
|
this.awarderKarma = awardeeKarma;
|
||||||
|
this.totalKarma = totalKarma;
|
||||||
this.cakeday = cakeday;
|
this.cakeday = cakeday;
|
||||||
this.isGold = isGold;
|
this.isGold = isGold;
|
||||||
this.isFriend = isFriend;
|
this.isFriend = isFriend;
|
||||||
this.canBeFollowed = canBeFollowed;
|
this.canBeFollowed = canBeFollowed;
|
||||||
|
this.isNSFW = isNSFW;
|
||||||
this.description = description;
|
this.description = description;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,8 +78,16 @@ public class UserData {
|
|||||||
return commentKarma;
|
return commentKarma;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getKarma() {
|
public int getAwarderKarma() {
|
||||||
return linkKarma + commentKarma;
|
return awarderKarma;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAwardeeKarma() {
|
||||||
|
return awardeeKarma;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTotalKarma() {
|
||||||
|
return totalKarma;
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getCakeday() {
|
public long getCakeday() {
|
||||||
@ -85,6 +106,10 @@ public class UserData {
|
|||||||
return canBeFollowed;
|
return canBeFollowed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isNSFW() {
|
||||||
|
return isNSFW;
|
||||||
|
}
|
||||||
|
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
return description;
|
return description;
|
||||||
}
|
}
|
||||||
|
@ -128,4 +128,6 @@ public class JSONUtils {
|
|||||||
public static final String SUGGESTED_COMMENT_SORT_KEY = "suggested_comment_sort";
|
public static final String SUGGESTED_COMMENT_SORT_KEY = "suggested_comment_sort";
|
||||||
public static final String OVER18_KEY = "over18";
|
public static final String OVER18_KEY = "over18";
|
||||||
public static final String TOTAL_KARMA_KEY = "total_karma";
|
public static final String TOTAL_KARMA_KEY = "total_karma";
|
||||||
|
public static final String AWARDER_KARMA_KEY = "awarder_karma";
|
||||||
|
public static final String AWARDEE_KARMA_KEY = "awardee_karma";
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user