From 3227e43fc4bc914f8bde1d06017ae16ced3fe278 Mon Sep 17 00:00:00 2001 From: Alex Ning Date: Sun, 29 Sep 2019 09:49:30 +0800 Subject: Change project structures. --- app/src/main/java/Account/Account.java | 76 ------------------------ app/src/main/java/Account/AccountDao.java | 55 ----------------- app/src/main/java/Account/AccountRepository.java | 42 ------------- app/src/main/java/Account/AccountViewModel.java | 52 ---------------- 4 files changed, 225 deletions(-) delete mode 100644 app/src/main/java/Account/Account.java delete mode 100644 app/src/main/java/Account/AccountDao.java delete mode 100644 app/src/main/java/Account/AccountRepository.java delete mode 100644 app/src/main/java/Account/AccountViewModel.java (limited to 'app/src/main/java/Account') 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 getAllAccounts(); - - @Query("SELECT * FROM accounts WHERE is_current_user = 0") - List 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 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 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> 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> mAccountsExceptCurrentAccountLiveData; - - AccountRepository(RedditDataRoomDatabase redditDataRoomDatabase, String username) { - mAccountDao = redditDataRoomDatabase.accountDao(); - mAccountsExceptCurrentAccountLiveData = mAccountDao.getAccountsExceptCurrentAccountLiveData(); - } - - public LiveData> getAccountsExceptCurrentAccountLiveData() { - return mAccountsExceptCurrentAccountLiveData; - } - - public void insert(Account Account) { - new InsertAsyncTask(mAccountDao).execute(Account); - } - - private static class InsertAsyncTask extends AsyncTask { - - 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> mAccountsExceptCurrentAccountLiveData; - - public AccountViewModel(Application application, RedditDataRoomDatabase redditDataRoomDatabase, String id) { - super(application); - mAccountRepository = new AccountRepository(redditDataRoomDatabase, id); - mAccountsExceptCurrentAccountLiveData = mAccountRepository.getAccountsExceptCurrentAccountLiveData(); - } - - public LiveData> 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 create(Class modelClass) { - //noinspection unchecked - return (T) new AccountViewModel(mApplication, mRedditDataRoomDatabase, mUsername); - } - } -} -- cgit v1.2.3