add separate table for users

This commit is contained in:
dkanada 2021-04-13 17:25:49 +09:00
commit af37f7b307
8 changed files with 126 additions and 42 deletions

View file

@ -15,6 +15,7 @@ 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;
@ -118,14 +119,18 @@ public class LoginActivity extends AbsBaseActivity implements View.OnClickListen
});
}
private void check(String url, String user, String token) {
private void check(String url, String name, String token) {
App.getApiClient().GetSystemInfoAsync(new Response<SystemInfo>() {
@Override
public void onResponse(SystemInfo result) {
if (result.getVersion().charAt(0) == '1') {
Server server = new Server(result.getServerName(), url, user, token);
PreferenceUtil.getInstance(LoginActivity.this).setServer(server.id);
Server server = new Server(result.getServerName(), url);
User user = new User(server.id, name, token);
App.getDatabase().serverDao().insertServer(server);
App.getDatabase().userDao().insertUser(user);
PreferenceUtil.getInstance(LoginActivity.this).setServer(server.id);
PreferenceUtil.getInstance(LoginActivity.this).setUser(user.id);
Intent intent = new Intent(LoginActivity.this, SplashActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);

View file

@ -14,6 +14,7 @@ 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;
@ -78,32 +79,34 @@ public class SplashActivity extends AbsBaseActivity {
}
public void login() {
if (PreferenceUtil.getInstance(this).getServer().isEmpty()) {
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) {
NavigationUtil.goToLogin(this);
} else {
final Context context = this;
Server server = App.getDatabase().serverDao().getServer(PreferenceUtil.getInstance(this).getServer());
App.getApiClient().ChangeServerLocation(server.url);
App.getApiClient().SetAuthenticationInfo(server.token, server.user);
App.getApiClient().GetSystemInfoAsync(new Response<SystemInfo>() {
@Override
public void onResponse(SystemInfo result) {
ClientCapabilities clientCapabilities = new ClientCapabilities();
clientCapabilities.setSupportsMediaControl(true);
clientCapabilities.setSupportsPersistentIdentifier(true);
App.getApiClient().ensureWebSocket();
App.getApiClient().ReportCapabilities(clientCapabilities, new EmptyResponse());
NavigationUtil.goToMain(context);
}
@Override
public void onError(Exception exception) {
NavigationUtil.goToLogin(context);
}
});
return;
}
App.getApiClient().ChangeServerLocation(server.url);
App.getApiClient().SetAuthenticationInfo(user.token, user.name);
App.getApiClient().GetSystemInfoAsync(new Response<SystemInfo>() {
@Override
public void onResponse(SystemInfo result) {
ClientCapabilities clientCapabilities = new ClientCapabilities();
clientCapabilities.setSupportsMediaControl(true);
clientCapabilities.setSupportsPersistentIdentifier(true);
App.getApiClient().ensureWebSocket();
App.getApiClient().ReportCapabilities(clientCapabilities, new EmptyResponse());
NavigationUtil.goToMain(context);
}
@Override
public void onError(Exception exception) {
NavigationUtil.goToLogin(context);
}
});
}
}