diff options
author | Alex Ning <chineseperson5@gmail.com> | 2019-09-29 01:49:30 +0000 |
---|---|---|
committer | Alex Ning <chineseperson5@gmail.com> | 2019-09-29 01:49:30 +0000 |
commit | 3227e43fc4bc914f8bde1d06017ae16ced3fe278 (patch) | |
tree | 4a73e51c771fee9fdb150965990d4400d493f192 /app/src/main/java/Account | |
parent | 47832e1e91db7e355b8122e1b533966c8df5ddba (diff) | |
download | infinity-for-reddit-3227e43fc4bc914f8bde1d06017ae16ced3fe278.tar infinity-for-reddit-3227e43fc4bc914f8bde1d06017ae16ced3fe278.tar.gz infinity-for-reddit-3227e43fc4bc914f8bde1d06017ae16ced3fe278.tar.bz2 infinity-for-reddit-3227e43fc4bc914f8bde1d06017ae16ced3fe278.tar.lz infinity-for-reddit-3227e43fc4bc914f8bde1d06017ae16ced3fe278.tar.xz infinity-for-reddit-3227e43fc4bc914f8bde1d06017ae16ced3fe278.tar.zst infinity-for-reddit-3227e43fc4bc914f8bde1d06017ae16ced3fe278.zip |
Change project structures.
Diffstat (limited to 'app/src/main/java/Account')
-rw-r--r-- | app/src/main/java/Account/Account.java | 76 | ||||
-rw-r--r-- | app/src/main/java/Account/AccountDao.java | 55 | ||||
-rw-r--r-- | app/src/main/java/Account/AccountRepository.java | 42 | ||||
-rw-r--r-- | app/src/main/java/Account/AccountViewModel.java | 52 |
4 files changed, 0 insertions, 225 deletions
diff --git a/app/src/main/java/Account/Account.java b/app/src/main/java/Account/Account.java deleted file mode 100644 index 4ae15741..00000000 --- a/app/src/main/java/Account/Account.java +++ /dev/null @@ -1,76 +0,0 @@ -package Account; - -import androidx.annotation.NonNull; -import androidx.room.ColumnInfo; -import androidx.room.Entity; -import androidx.room.PrimaryKey; - -@Entity(tableName = "accounts") -public class Account { - @PrimaryKey - @NonNull - @ColumnInfo(name = "username") - private String username; - @ColumnInfo(name = "profile_image_url") - private String profileImageUrl; - @ColumnInfo(name = "banner_image_url") - private String bannerImageUrl; - @ColumnInfo(name = "karma") - private int karma; - @ColumnInfo(name = "access_token") - private String accessToken; - @ColumnInfo(name = "refresh_token") - private String refreshToken; - @ColumnInfo(name = "code") - private String code; - @ColumnInfo(name = "is_current_user") - private boolean isCurrentUser; - - public Account(@NonNull String username, String accessToken, String refreshToken, String code, - String profileImageUrl, String bannerImageUrl, int karma, boolean isCurrentUser) { - this.username = username; - this.accessToken = accessToken; - this.refreshToken = refreshToken; - this.code = code; - this.profileImageUrl = profileImageUrl; - this.bannerImageUrl = bannerImageUrl; - this.karma = karma; - this.isCurrentUser = isCurrentUser; - } - - public String getUsername() { - return username; - } - - public String getProfileImageUrl() { - return profileImageUrl; - } - - public String getBannerImageUrl() { - return bannerImageUrl; - } - - public int getKarma() { - return karma; - } - - public String getAccessToken() { - return accessToken; - } - - public void setAccessToken(String accessToken) { - this.accessToken = accessToken; - } - - public String getRefreshToken() { - return refreshToken; - } - - public String getCode() { - return code; - } - - public boolean isCurrentUser() { - return isCurrentUser; - } -} diff --git a/app/src/main/java/Account/AccountDao.java b/app/src/main/java/Account/AccountDao.java deleted file mode 100644 index 67caf71d..00000000 --- a/app/src/main/java/Account/AccountDao.java +++ /dev/null @@ -1,55 +0,0 @@ -package Account; - -import androidx.lifecycle.LiveData; -import androidx.room.Dao; -import androidx.room.Insert; -import androidx.room.OnConflictStrategy; -import androidx.room.Query; - -import java.util.List; - -@Dao -public interface AccountDao { - @Insert(onConflict = OnConflictStrategy.REPLACE) - void insert(Account account); - - @Query("SELECT * FROM accounts") - List<Account> getAllAccounts(); - - @Query("SELECT * FROM accounts WHERE is_current_user = 0") - List<Account> getAllNonCurrentAccounts(); - - @Query("UPDATE accounts SET is_current_user = 0 WHERE is_current_user = 1") - void markAllAccountsNonCurrent(); - - @Query("DELETE FROM accounts WHERE is_current_user = 1") - void deleteCurrentAccount(); - - @Query("DELETE FROM accounts") - void deleteAllAccounts(); - - @Query("SELECT * FROM accounts WHERE username = :username COLLATE NOCASE LIMIT 1") - LiveData<Account> getAccountLiveData(String username); - - @Query("SELECT * FROM accounts WHERE username = :username COLLATE NOCASE LIMIT 1") - Account getAccountData(String username); - - @Query("SELECT * FROM accounts WHERE is_current_user = 1 LIMIT 1") - Account getCurrentAccount(); - - @Query("SELECT * FROM accounts WHERE is_current_user = 1 LIMIT 1") - LiveData<Account> getCurrentAccountLiveData(); - - @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 is_current_user = 0 ORDER BY username COLLATE NOCASE ASC") - LiveData<List<Account>> getAccountsExceptCurrentAccountLiveData(); - - @Query("UPDATE accounts SET is_current_user = 1 WHERE username = :username") - void markAccountCurrent(String username); - - @Query("UPDATE accounts SET access_token = :accessToken WHERE username = :username") - void changeAccessToken(String username, String accessToken); -} diff --git a/app/src/main/java/Account/AccountRepository.java b/app/src/main/java/Account/AccountRepository.java deleted file mode 100644 index 573f00f8..00000000 --- a/app/src/main/java/Account/AccountRepository.java +++ /dev/null @@ -1,42 +0,0 @@ -package Account; - -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<List<Account>> mAccountsExceptCurrentAccountLiveData; - - AccountRepository(RedditDataRoomDatabase redditDataRoomDatabase, String username) { - mAccountDao = redditDataRoomDatabase.accountDao(); - mAccountsExceptCurrentAccountLiveData = mAccountDao.getAccountsExceptCurrentAccountLiveData(); - } - - public LiveData<List<Account>> getAccountsExceptCurrentAccountLiveData() { - return mAccountsExceptCurrentAccountLiveData; - } - - public void insert(Account Account) { - new InsertAsyncTask(mAccountDao).execute(Account); - } - - private static class InsertAsyncTask extends AsyncTask<Account, Void, Void> { - - private AccountDao mAsyncTaskDao; - - InsertAsyncTask(AccountDao dao) { - mAsyncTaskDao = dao; - } - - @Override - protected Void doInBackground(final Account... params) { - mAsyncTaskDao.insert(params[0]); - return null; - } - } -} diff --git a/app/src/main/java/Account/AccountViewModel.java b/app/src/main/java/Account/AccountViewModel.java deleted file mode 100644 index 53fb0013..00000000 --- a/app/src/main/java/Account/AccountViewModel.java +++ /dev/null @@ -1,52 +0,0 @@ -package Account; - -import android.app.Application; - -import androidx.annotation.NonNull; -import androidx.lifecycle.AndroidViewModel; -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<List<Account>> mAccountsExceptCurrentAccountLiveData; - - public AccountViewModel(Application application, RedditDataRoomDatabase redditDataRoomDatabase, String id) { - super(application); - mAccountRepository = new AccountRepository(redditDataRoomDatabase, id); - mAccountsExceptCurrentAccountLiveData = mAccountRepository.getAccountsExceptCurrentAccountLiveData(); - } - - public LiveData<List<Account>> getAccountsExceptCurrentAccountLiveData() { - return mAccountsExceptCurrentAccountLiveData; - } - - public void insert(Account userData) { - mAccountRepository.insert(userData); - } - - public static class Factory extends ViewModelProvider.NewInstanceFactory { - - @NonNull - private final Application mApplication; - private final RedditDataRoomDatabase mRedditDataRoomDatabase; - private final String mUsername; - - public Factory(@NonNull Application application, RedditDataRoomDatabase redditDataRoomDatabase, String username) { - mApplication = application; - mRedditDataRoomDatabase = redditDataRoomDatabase; - mUsername = username; - } - - @Override - public <T extends ViewModel> T create(Class<T> modelClass) { - //noinspection unchecked - return (T) new AccountViewModel(mApplication, mRedditDataRoomDatabase, mUsername); - } - } -} |