mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2025-10-06 13:59:49 +02:00
New feature: Subscribe or unsubscribe to a subreddit. Allow clear text traffic in Android Pie. Rewrite some code in lambda.
This commit is contained in:
@@ -14,11 +14,8 @@ public interface SubredditDao {
|
||||
@Query("DELETE FROM subreddits")
|
||||
void deleteAllSubreddits();
|
||||
|
||||
@Query("SELECT * from subreddits WHERE id = :id")
|
||||
LiveData<SubredditData> getSubredditLiveDataById(String id);
|
||||
|
||||
@Query("SELECT * from subreddits WHERE name = :namePrefixed")
|
||||
LiveData<SubredditData> getSubredditLiveDataByNamePrefixed(String namePrefixed);
|
||||
LiveData<SubredditData> getSubredditLiveDataByName(String namePrefixed);
|
||||
|
||||
@Query("SELECT * from subreddits WHERE name = :namePrefixed LIMIT 1")
|
||||
SubredditData getSubredditData(String namePrefixed);
|
||||
|
@@ -2,23 +2,13 @@ package SubredditDatabase;
|
||||
|
||||
import android.arch.persistence.room.ColumnInfo;
|
||||
import android.arch.persistence.room.Entity;
|
||||
import android.arch.persistence.room.PrimaryKey;
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
import SubscribedSubredditDatabase.SubscribedSubredditData;
|
||||
|
||||
@Entity(tableName = "subreddits")
|
||||
public class SubredditData {
|
||||
@PrimaryKey
|
||||
@NonNull
|
||||
@ColumnInfo(name = "id")
|
||||
private String id;
|
||||
|
||||
@ColumnInfo(name = "name")
|
||||
private String name;
|
||||
|
||||
@ColumnInfo(name = "icon_url")
|
||||
private String iconUrl;
|
||||
|
||||
@ColumnInfo(name = "banner_url")
|
||||
public class SubredditData extends SubscribedSubredditData {
|
||||
@ColumnInfo(name = "banner")
|
||||
private String bannerUrl;
|
||||
|
||||
@ColumnInfo(name = "description")
|
||||
@@ -28,27 +18,12 @@ public class SubredditData {
|
||||
private int nSubscribers;
|
||||
|
||||
public SubredditData(@NonNull String id, String name, String iconUrl, String bannerUrl, String description, int nSubscribers) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.iconUrl = iconUrl;
|
||||
super(id, name, iconUrl);
|
||||
this.bannerUrl = bannerUrl;
|
||||
this.description = description;
|
||||
this.nSubscribers = nSubscribers;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getIconUrl() {
|
||||
return iconUrl;
|
||||
}
|
||||
|
||||
public String getBannerUrl() {
|
||||
return bannerUrl;
|
||||
}
|
||||
|
@@ -8,14 +8,11 @@ public class SubredditRepository {
|
||||
private SubredditDao mSubredditDao;
|
||||
private LiveData<SubredditData> mSubredditLiveData;
|
||||
|
||||
SubredditRepository(Application application, String value, boolean isId) {
|
||||
SubredditRepository(Application application, String subredditName) {
|
||||
SubredditRoomDatabase db = SubredditRoomDatabase.getDatabase(application);
|
||||
mSubredditDao = db.subredditDao();
|
||||
if(isId) {
|
||||
mSubredditLiveData = mSubredditDao.getSubredditLiveDataById(value);
|
||||
} else {
|
||||
mSubredditLiveData = mSubredditDao.getSubredditLiveDataByNamePrefixed(value);
|
||||
}
|
||||
|
||||
mSubredditLiveData = mSubredditDao.getSubredditLiveDataByName(subredditName);
|
||||
}
|
||||
|
||||
LiveData<SubredditData> getSubredditLiveData() {
|
||||
|
@@ -11,9 +11,9 @@ public class SubredditViewModel extends AndroidViewModel {
|
||||
private SubredditRepository mSubredditRepository;
|
||||
private LiveData<SubredditData> mSubredditLiveData;
|
||||
|
||||
SubredditViewModel(Application application, String id, boolean isId) {
|
||||
SubredditViewModel(Application application, String id) {
|
||||
super(application);
|
||||
mSubredditRepository = new SubredditRepository(application, id, isId);
|
||||
mSubredditRepository = new SubredditRepository(application, id);
|
||||
mSubredditLiveData = mSubredditRepository.getSubredditLiveData();
|
||||
}
|
||||
|
||||
@@ -30,19 +30,17 @@ public class SubredditViewModel extends AndroidViewModel {
|
||||
@NonNull
|
||||
private final Application mApplication;
|
||||
|
||||
private final String value;
|
||||
private final boolean isId;
|
||||
private final String subredditName;
|
||||
|
||||
public Factory(@NonNull Application application, String value, boolean isId) {
|
||||
public Factory(@NonNull Application application, String subredditName) {
|
||||
mApplication = application;
|
||||
this.value = value;
|
||||
this.isId = isId;
|
||||
this.subredditName = subredditName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends ViewModel> T create(Class<T> modelClass) {
|
||||
//noinspection unchecked
|
||||
return (T) new SubredditViewModel(mApplication, value, isId);
|
||||
return (T) new SubredditViewModel(mApplication, subredditName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user