From b932ed2c138470493568f34d4fb453bb5347cf4a Mon Sep 17 00:00:00 2001 From: Thomas Date: Thu, 31 Dec 2020 15:32:38 +0100 Subject: [PATCH] Some fixes --- .../fedilab/fedilabtube/AccountActivity.java | 1 + .../app/fedilab/fedilabtube/MainActivity.java | 2 +- .../client/RetrofitMastodonAPI.java | 8 +- .../client/entities/MastodonAccount.java | 4 +- .../sqlite/MastodonAccountDAO.java | 148 ------------------ .../fedilabtube/viewmodel/ChannelsVM.java | 1 + .../fedilabtube/viewmodel/PlaylistsVM.java | 1 + 7 files changed, 11 insertions(+), 154 deletions(-) diff --git a/app/src/main/java/app/fedilab/fedilabtube/AccountActivity.java b/app/src/main/java/app/fedilab/fedilabtube/AccountActivity.java index fc7b223..6064f82 100644 --- a/app/src/main/java/app/fedilab/fedilabtube/AccountActivity.java +++ b/app/src/main/java/app/fedilab/fedilabtube/AccountActivity.java @@ -15,6 +15,7 @@ package app.fedilab.fedilabtube; * see . */ import android.content.Intent; +import android.content.SharedPreferences; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.text.SpannableString; diff --git a/app/src/main/java/app/fedilab/fedilabtube/MainActivity.java b/app/src/main/java/app/fedilab/fedilabtube/MainActivity.java index 9d26ebf..6390e05 100644 --- a/app/src/main/java/app/fedilab/fedilabtube/MainActivity.java +++ b/app/src/main/java/app/fedilab/fedilabtube/MainActivity.java @@ -799,7 +799,7 @@ public class MainActivity extends AppCompatActivity implements ChromeCastsListen if (typeOfConnection == SURFING) { SwitchAccountHelper.switchDialog(MainActivity.this, false); } else { - if (Helper.isLoggedIn(MainActivity.this)) { + if (Helper.canMakeAction(MainActivity.this)) { intent = new Intent(MainActivity.this, AccountActivity.class); } else { intent = new Intent(MainActivity.this, LoginActivity.class); diff --git a/app/src/main/java/app/fedilab/fedilabtube/client/RetrofitMastodonAPI.java b/app/src/main/java/app/fedilab/fedilabtube/client/RetrofitMastodonAPI.java index 306317e..6a1c1e4 100644 --- a/app/src/main/java/app/fedilab/fedilabtube/client/RetrofitMastodonAPI.java +++ b/app/src/main/java/app/fedilab/fedilabtube/client/RetrofitMastodonAPI.java @@ -69,13 +69,15 @@ public class RetrofitMastodonAPI { SharedPreferences.Editor editor = sharedpreferences.edit(); editor.putString(Helper.PREF_KEY_ID, account.getId()); editor.putString(Helper.PREF_KEY_NAME, account.getUsername()); + editor.putString(Helper.PREF_KEY_OAUTH_TOKEN, token); editor.putString(Helper.PREF_SOFTWARE, software); editor.apply(); - if (userExists) + if (userExists) { new MastodonAccountDAO(activity, db).updateAccountCredential(account); - else { - if (account.getUsername() != null && account.getCreatedAt() != null) + } else { + if (account.getUsername() != null && account.getCreatedAt() != null) { new MastodonAccountDAO(activity, db).insertAccount(account); + } } Handler mainHandler = new Handler(Looper.getMainLooper()); Runnable myRunnable = () -> { diff --git a/app/src/main/java/app/fedilab/fedilabtube/client/entities/MastodonAccount.java b/app/src/main/java/app/fedilab/fedilabtube/client/entities/MastodonAccount.java index 32762e0..3b6337a 100644 --- a/app/src/main/java/app/fedilab/fedilabtube/client/entities/MastodonAccount.java +++ b/app/src/main/java/app/fedilab/fedilabtube/client/entities/MastodonAccount.java @@ -40,7 +40,7 @@ public class MastodonAccount { }; @SerializedName("avatar") private String avatar; - @SerializedName("createdAt") + @SerializedName("created_at") private Date createdAt; @SerializedName("note") private String description; @@ -54,7 +54,7 @@ public class MastodonAccount { private String id; @SerializedName("username") private String username; - @SerializedName("updatedAt") + @SerializedName("updated_at") private Date updatedAt; @SerializedName("url") private String url; diff --git a/app/src/main/java/app/fedilab/fedilabtube/sqlite/MastodonAccountDAO.java b/app/src/main/java/app/fedilab/fedilabtube/sqlite/MastodonAccountDAO.java index 3ae544c..23fa430 100644 --- a/app/src/main/java/app/fedilab/fedilabtube/sqlite/MastodonAccountDAO.java +++ b/app/src/main/java/app/fedilab/fedilabtube/sqlite/MastodonAccountDAO.java @@ -20,10 +20,7 @@ import android.content.SharedPreferences; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; -import java.util.ArrayList; import java.util.Date; -import java.util.List; - import app.fedilab.fedilabtube.client.entities.MastodonAccount.Account; import app.fedilab.fedilabtube.client.entities.Token; import app.fedilab.fedilabtube.helper.Helper; @@ -202,73 +199,7 @@ public class MastodonAccountDAO { } - /** - * Returns last used account - * - * @return Account - */ - public Account getLastUsedAccount() { - try { - Cursor c = db.query(Sqlite.TABLE_USER_ACCOUNT, null, Sqlite.COL_OAUTHTOKEN + " != 'null'", null, null, null, Sqlite.COL_UPDATED_AT + " DESC", "1"); - return cursorToUser(c); - } catch (Exception e) { - return null; - } - } - - - /** - * Returns all Account in db - * - * @return Account List - */ - public List getAllAccount() { - - try { - Cursor c = db.query(Sqlite.TABLE_USER_ACCOUNT, null, null, null, null, null, Sqlite.COL_INSTANCE + " ASC", null); - return cursorToListUser(c); - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - - /** - * Returns an Account by token - * - * @param token String - * @return Account - */ - public Account getAccountByToken(String token) { - - try { - Cursor c = db.query(Sqlite.TABLE_USER_ACCOUNT, null, Sqlite.COL_OAUTHTOKEN + " = \"" + token + "\"", null, null, null, null, "1"); - return cursorToUser(c); - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - /** - * Returns an Account by id and instance - * - * @param id String - * @param instance String - * @return Account - */ - public Account getAccountByIdInstance(String id, String instance) { - - try { - Cursor c = db.query(Sqlite.TABLE_USER_ACCOUNT, null, Sqlite.COL_USER_ID + " = \"" + id + "\" AND " + Sqlite.COL_INSTANCE + " = \"" + instance + "\"", null, null, null, null, "1"); - return cursorToUser(c); - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } /** * Test if the current user is already stored in data base @@ -286,84 +217,5 @@ public class MastodonAccountDAO { } - /*** - * Method to hydrate an Account from database - * @param c Cursor - * @return Account - */ - private Account cursorToUser(Cursor c) { - //No element found - - if (c.getCount() == 0) { - c.close(); - return null; - } - //Take the first element - c.moveToFirst(); - //New user - Account account = new Account(); - account.setId(c.getString(c.getColumnIndex(Sqlite.COL_USER_ID))); - account.setUsername(c.getString(c.getColumnIndex(Sqlite.COL_USERNAME))); - account.setDisplayName(c.getString(c.getColumnIndex(Sqlite.COL_DISPLAYED_NAME))); - account.setFollowersCount(c.getInt(c.getColumnIndex(Sqlite.COL_FOLLOWERS_COUNT))); - account.setFollowingCount(c.getInt(c.getColumnIndex(Sqlite.COL_FOLLOWING_COUNT))); - account.setDescription(c.getString(c.getColumnIndex(Sqlite.COL_NOTE))); - account.setUrl(c.getString(c.getColumnIndex(Sqlite.COL_URL))); - account.setAvatar(c.getString(c.getColumnIndex(Sqlite.COL_AVATAR))); - account.setUpdatedAt(Helper.stringToDate(context, c.getString(c.getColumnIndex(Sqlite.COL_UPDATED_AT)))); - account.setCreatedAt(Helper.stringToDate(context, c.getString(c.getColumnIndex(Sqlite.COL_CREATED_AT)))); - account.setHost(c.getString(c.getColumnIndex(Sqlite.COL_INSTANCE))); - account.setToken(c.getString(c.getColumnIndex(Sqlite.COL_OAUTHTOKEN))); - account.setSoftware(c.getString(c.getColumnIndex(Sqlite.COL_SOFTWARE))); - account.setClient_id(c.getString(c.getColumnIndex(Sqlite.COL_CLIENT_ID))); - account.setClient_secret(c.getString(c.getColumnIndex(Sqlite.COL_CLIENT_SECRET))); - account.setRefresh_token(c.getString(c.getColumnIndex(Sqlite.COL_REFRESH_TOKEN))); - //Close the cursor - c.close(); - - //User is returned - return account; - } - - - /*** - * Method to hydrate an Accounts from database - * @param c Cursor - * @return List - */ - private List cursorToListUser(Cursor c) { - //No element found - if (c.getCount() == 0) { - c.close(); - return null; - } - List accounts = new ArrayList<>(); - while (c.moveToNext()) { - //New user - Account account = new Account(); - account.setId(c.getString(c.getColumnIndex(Sqlite.COL_USER_ID))); - account.setUsername(c.getString(c.getColumnIndex(Sqlite.COL_USERNAME))); - account.setDisplayName(c.getString(c.getColumnIndex(Sqlite.COL_DISPLAYED_NAME))); - account.setFollowersCount(c.getInt(c.getColumnIndex(Sqlite.COL_FOLLOWERS_COUNT))); - account.setFollowingCount(c.getInt(c.getColumnIndex(Sqlite.COL_FOLLOWING_COUNT))); - account.setDescription(c.getString(c.getColumnIndex(Sqlite.COL_NOTE))); - account.setUrl(c.getString(c.getColumnIndex(Sqlite.COL_URL))); - account.setAvatar(c.getString(c.getColumnIndex(Sqlite.COL_AVATAR))); - account.setUpdatedAt(Helper.stringToDate(context, c.getString(c.getColumnIndex(Sqlite.COL_UPDATED_AT)))); - account.setCreatedAt(Helper.stringToDate(context, c.getString(c.getColumnIndex(Sqlite.COL_CREATED_AT)))); - account.setHost(c.getString(c.getColumnIndex(Sqlite.COL_INSTANCE))); - account.setToken(c.getString(c.getColumnIndex(Sqlite.COL_OAUTHTOKEN))); - account.setSoftware(c.getString(c.getColumnIndex(Sqlite.COL_SOFTWARE))); - account.setClient_id(c.getString(c.getColumnIndex(Sqlite.COL_CLIENT_ID))); - account.setClient_secret(c.getString(c.getColumnIndex(Sqlite.COL_CLIENT_SECRET))); - account.setRefresh_token(c.getString(c.getColumnIndex(Sqlite.COL_REFRESH_TOKEN))); - accounts.add(account); - } - //Close the cursor - c.close(); - //Users list is returned - return accounts; - } - } diff --git a/app/src/main/java/app/fedilab/fedilabtube/viewmodel/ChannelsVM.java b/app/src/main/java/app/fedilab/fedilabtube/viewmodel/ChannelsVM.java index 405a295..fa1c63a 100644 --- a/app/src/main/java/app/fedilab/fedilabtube/viewmodel/ChannelsVM.java +++ b/app/src/main/java/app/fedilab/fedilabtube/viewmodel/ChannelsVM.java @@ -26,6 +26,7 @@ import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; +import app.fedilab.fedilabtube.AccountActivity; import app.fedilab.fedilabtube.client.APIResponse; import app.fedilab.fedilabtube.client.RetrofitPeertubeAPI; import app.fedilab.fedilabtube.client.data.AccountData; diff --git a/app/src/main/java/app/fedilab/fedilabtube/viewmodel/PlaylistsVM.java b/app/src/main/java/app/fedilab/fedilabtube/viewmodel/PlaylistsVM.java index 3b60376..b152b66 100644 --- a/app/src/main/java/app/fedilab/fedilabtube/viewmodel/PlaylistsVM.java +++ b/app/src/main/java/app/fedilab/fedilabtube/viewmodel/PlaylistsVM.java @@ -16,6 +16,7 @@ package app.fedilab.fedilabtube.viewmodel; import android.app.Application; import android.content.Context; +import android.content.SharedPreferences; import android.database.sqlite.SQLiteDatabase; import android.os.Handler; import android.os.Looper;