From 8a73fcf6a44433f26fda8cab79d1a9a417d7925f Mon Sep 17 00:00:00 2001 From: dkanada Date: Wed, 14 Apr 2021 18:19:19 +0900 Subject: [PATCH] remove servers from database --- .../main/java/com/dkanada/gramophone/App.java | 1 + .../gramophone/activities/LoginActivity.java | 11 +++---- .../gramophone/activities/SplashActivity.java | 8 ++--- .../gramophone/database/JellyDatabase.java | 16 +++++++--- .../gramophone/database/ServerDao.java | 26 ---------------- .../com/dkanada/gramophone/model/Server.java | 30 ------------------- .../com/dkanada/gramophone/model/User.java | 19 ++++-------- 7 files changed, 25 insertions(+), 86 deletions(-) delete mode 100644 app/src/main/java/com/dkanada/gramophone/database/ServerDao.java delete mode 100644 app/src/main/java/com/dkanada/gramophone/model/Server.java diff --git a/app/src/main/java/com/dkanada/gramophone/App.java b/app/src/main/java/com/dkanada/gramophone/App.java index 5bb4c498..1bae5fc3 100644 --- a/app/src/main/java/com/dkanada/gramophone/App.java +++ b/app/src/main/java/com/dkanada/gramophone/App.java @@ -55,6 +55,7 @@ public class App extends Application { .allowMainThreadQueries() .addMigrations(JellyDatabase.Migration2) .addMigrations(JellyDatabase.Migration3) + .addMigrations(JellyDatabase.Migration4) .build(); } diff --git a/app/src/main/java/com/dkanada/gramophone/activities/LoginActivity.java b/app/src/main/java/com/dkanada/gramophone/activities/LoginActivity.java index bb796f28..f14636e0 100644 --- a/app/src/main/java/com/dkanada/gramophone/activities/LoginActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/activities/LoginActivity.java @@ -14,7 +14,6 @@ import com.dkanada.gramophone.App; import com.dkanada.gramophone.R; import com.dkanada.gramophone.databinding.ActivityLoginBinding; import com.dkanada.gramophone.activities.base.AbsBaseActivity; -import com.dkanada.gramophone.model.Server; import com.dkanada.gramophone.model.User; import com.dkanada.gramophone.util.PreferenceUtil; import com.kabouzeid.appthemehelper.ThemeStore; @@ -102,7 +101,7 @@ public class LoginActivity extends AbsBaseActivity implements View.OnClickListen @Override public void onResponse(AuthenticationResult authenticationResult) { if (authenticationResult.getAccessToken() != null) { - check(authenticationResult); + check(authenticationResult, server); } } @@ -120,17 +119,15 @@ public class LoginActivity extends AbsBaseActivity implements View.OnClickListen }); } - private void check(AuthenticationResult authenticationResult) { + private void check(AuthenticationResult authenticationResult, String server) { App.getApiClient().GetSystemInfoAsync(new Response() { @Override public void onResponse(SystemInfo result) { if (result.getVersion().charAt(0) == '1') { - Server server = new Server(result); - User user = new User(authenticationResult); + User user = new User(authenticationResult, server); - App.getDatabase().serverDao().insertServer(server); App.getDatabase().userDao().insertUser(user); - PreferenceUtil.getInstance(LoginActivity.this).setServer(server.id); + PreferenceUtil.getInstance(LoginActivity.this).setServer(user.server); PreferenceUtil.getInstance(LoginActivity.this).setUser(user.id); Intent intent = new Intent(LoginActivity.this, SplashActivity.class); diff --git a/app/src/main/java/com/dkanada/gramophone/activities/SplashActivity.java b/app/src/main/java/com/dkanada/gramophone/activities/SplashActivity.java index 97ca7f61..25c7211a 100644 --- a/app/src/main/java/com/dkanada/gramophone/activities/SplashActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/activities/SplashActivity.java @@ -13,7 +13,6 @@ import androidx.annotation.RequiresApi; import com.dkanada.gramophone.App; import com.dkanada.gramophone.R; import com.dkanada.gramophone.activities.base.AbsBaseActivity; -import com.dkanada.gramophone.model.Server; import com.dkanada.gramophone.model.User; import com.dkanada.gramophone.util.NavigationUtil; import com.dkanada.gramophone.util.PreferenceUtil; @@ -80,16 +79,15 @@ public class SplashActivity extends AbsBaseActivity { public void login() { Context context = this; - Server server = App.getDatabase().serverDao().getServer(PreferenceUtil.getInstance(this).getServer()); User user = App.getDatabase().userDao().getUser(PreferenceUtil.getInstance(this).getUser()); - if (server == null || user == null) { + if (user == null) { NavigationUtil.goToLogin(this); return; } - App.getApiClient().ChangeServerLocation(server.url); - App.getApiClient().SetAuthenticationInfo(user.token, user.name); + App.getApiClient().ChangeServerLocation(user.server); + App.getApiClient().SetAuthenticationInfo(user.token, user.id); App.getApiClient().GetSystemInfoAsync(new Response() { @Override public void onResponse(SystemInfo result) { diff --git a/app/src/main/java/com/dkanada/gramophone/database/JellyDatabase.java b/app/src/main/java/com/dkanada/gramophone/database/JellyDatabase.java index 978b29ce..a39cc428 100644 --- a/app/src/main/java/com/dkanada/gramophone/database/JellyDatabase.java +++ b/app/src/main/java/com/dkanada/gramophone/database/JellyDatabase.java @@ -5,22 +5,19 @@ import androidx.room.RoomDatabase; import androidx.room.migration.Migration; import androidx.sqlite.db.SupportSQLiteDatabase; -import com.dkanada.gramophone.model.Server; import com.dkanada.gramophone.model.Song; import com.dkanada.gramophone.model.User; @androidx.room.Database( entities = { - Server.class, Song.class, QueueSong.class, User.class }, - version = 3, + version = 4, exportSchema = false ) public abstract class JellyDatabase extends RoomDatabase { - public abstract ServerDao serverDao(); public abstract SongDao songDao(); public abstract QueueSongDao queueSongDao(); public abstract UserDao userDao(); @@ -44,4 +41,15 @@ public abstract class JellyDatabase extends RoomDatabase { + "serverId TEXT, name TEXT, token TEXT)"); } }; + + public static final Migration Migration4 = new Migration(3, 4) { + @Override + public void migrate(@NonNull SupportSQLiteDatabase database) { + database.execSQL("DROP TABLE servers"); + database.execSQL("DROP TABLE users"); + + database.execSQL("CREATE TABLE users (id TEXT NOT NULL PRIMARY KEY," + + "name TEXT, server TEXT, token TEXT)"); + } + }; } diff --git a/app/src/main/java/com/dkanada/gramophone/database/ServerDao.java b/app/src/main/java/com/dkanada/gramophone/database/ServerDao.java deleted file mode 100644 index de4da566..00000000 --- a/app/src/main/java/com/dkanada/gramophone/database/ServerDao.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.dkanada.gramophone.database; - -import androidx.room.Dao; -import androidx.room.Delete; -import androidx.room.Insert; -import androidx.room.OnConflictStrategy; -import androidx.room.Query; - -import com.dkanada.gramophone.model.Server; - -import java.util.List; - -@Dao -public interface ServerDao { - @Insert(onConflict = OnConflictStrategy.REPLACE) - void insertServer(Server server); - - @Delete - void deleteServer(Server server); - - @Query("SELECT * FROM servers") - List getServers(); - - @Query("SELECT * FROM servers WHERE id = :id") - Server getServer(String id); -} diff --git a/app/src/main/java/com/dkanada/gramophone/model/Server.java b/app/src/main/java/com/dkanada/gramophone/model/Server.java deleted file mode 100644 index 374efadd..00000000 --- a/app/src/main/java/com/dkanada/gramophone/model/Server.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.dkanada.gramophone.model; - -import androidx.annotation.NonNull; -import androidx.room.Entity; -import androidx.room.PrimaryKey; - -import org.jellyfin.apiclient.model.system.SystemInfo; - -import java.util.UUID; - -@Entity(tableName = "servers") -public class Server { - @NonNull - @PrimaryKey - public String id; - - public String name; - public String url; - - public Server() { - this.id = UUID.randomUUID().toString(); - } - - public Server(SystemInfo systemInfo) { - this.id = systemInfo.getId(); - - this.name = systemInfo.getServerName(); - this.url = systemInfo.getWanAddress(); - } -} diff --git a/app/src/main/java/com/dkanada/gramophone/model/User.java b/app/src/main/java/com/dkanada/gramophone/model/User.java index b9b3a42e..a3f3ded3 100644 --- a/app/src/main/java/com/dkanada/gramophone/model/User.java +++ b/app/src/main/java/com/dkanada/gramophone/model/User.java @@ -2,7 +2,6 @@ package com.dkanada.gramophone.model; import androidx.annotation.NonNull; import androidx.room.Entity; -import androidx.room.ForeignKey; import androidx.room.PrimaryKey; import org.jellyfin.apiclient.model.users.AuthenticationResult; @@ -14,28 +13,20 @@ public class User { @NonNull @PrimaryKey public String id; - - @ForeignKey( - entity = Server.class, - parentColumns = {"id"}, - childColumns = {"serverId"}, - onDelete = ForeignKey.CASCADE - ) - public String serverId; - public String name; + + public String server; public String token; public User() { this.id = UUID.randomUUID().toString(); } - public User(AuthenticationResult result) { + public User(AuthenticationResult result, String server) { this.id = result.getUser().getId(); - - this.serverId = result.getServerId(); - this.name = result.getUser().getName(); + + this.server = server; this.token = result.getAccessToken(); } }