mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2025-10-06 13:59:49 +02:00
Log in other reddit accounts are available. Add an account switcher in the navigation drawer in MainActivity.
This commit is contained in:
@@ -34,4 +34,7 @@ public interface AccountDao {
|
||||
@Query("UPDATE accounts SET profile_image_url = :profileImageUrl, banner_image_url = :bannerImageUrl, " +
|
||||
"karma = :karma WHERE username = :username")
|
||||
void updateAccountInfo(String username, String profileImageUrl, String bannerImageUrl, int karma);
|
||||
|
||||
@Query("SELECT * FROM accounts WHERE username != :username")
|
||||
LiveData<List<Account>> getAccountsExceptCurrentAccountLiveData(String username);
|
||||
}
|
||||
|
@@ -4,21 +4,29 @@ import android.os.AsyncTask;
|
||||
|
||||
import androidx.lifecycle.LiveData;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||
|
||||
public class AccountRepository {
|
||||
private AccountDao mAccountDao;
|
||||
private LiveData<Account> mAccountLiveData;
|
||||
private LiveData<List<Account>> mAccountsExceptCurrentAccountLiveData;
|
||||
|
||||
AccountRepository(RedditDataRoomDatabase redditDataRoomDatabase, String username) {
|
||||
mAccountDao = redditDataRoomDatabase.accountDao();
|
||||
mAccountLiveData = mAccountDao.getAccountLiveData(username);
|
||||
mAccountsExceptCurrentAccountLiveData = mAccountDao.getAccountsExceptCurrentAccountLiveData(username);
|
||||
}
|
||||
|
||||
LiveData<Account> getAccountLiveData() {
|
||||
return mAccountLiveData;
|
||||
}
|
||||
|
||||
public LiveData<List<Account>> getAccountsExceptCurrentAccountLiveData() {
|
||||
return mAccountsExceptCurrentAccountLiveData;
|
||||
}
|
||||
|
||||
public void insert(Account Account) {
|
||||
new InsertAsyncTask(mAccountDao).execute(Account);
|
||||
}
|
||||
|
@@ -8,22 +8,30 @@ import androidx.lifecycle.LiveData;
|
||||
import androidx.lifecycle.ViewModel;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||
|
||||
public class AccountViewModel extends AndroidViewModel {
|
||||
private AccountRepository mAccountRepository;
|
||||
private LiveData<Account> mAccountLiveData;
|
||||
private LiveData<List<Account>> mAccountsExceptCurrentAccountLiveData;
|
||||
|
||||
public AccountViewModel(Application application, RedditDataRoomDatabase redditDataRoomDatabase, String id) {
|
||||
super(application);
|
||||
mAccountRepository = new AccountRepository(redditDataRoomDatabase, id);
|
||||
mAccountLiveData = mAccountRepository.getAccountLiveData();
|
||||
mAccountsExceptCurrentAccountLiveData = mAccountRepository.getAccountsExceptCurrentAccountLiveData();
|
||||
}
|
||||
|
||||
public LiveData<Account> getAccountLiveData() {
|
||||
return mAccountLiveData;
|
||||
}
|
||||
|
||||
public LiveData<List<Account>> getAccountsExceptCurrentAccountLiveData() {
|
||||
return mAccountsExceptCurrentAccountLiveData;
|
||||
}
|
||||
|
||||
public void insert(Account userData) {
|
||||
mAccountRepository.insert(userData);
|
||||
}
|
||||
|
Reference in New Issue
Block a user