refactor splash and login code
This commit is contained in:
parent
f8cfdc4706
commit
6d96680101
2 changed files with 33 additions and 36 deletions
|
|
@ -47,6 +47,7 @@ public class LoginActivity extends AbsBaseActivity implements View.OnClickListen
|
||||||
private void setUpToolbar() {
|
private void setUpToolbar() {
|
||||||
binding.toolbar.setBackgroundColor(ThemeStore.primaryColor(this));
|
binding.toolbar.setBackgroundColor(ThemeStore.primaryColor(this));
|
||||||
setSupportActionBar(binding.toolbar);
|
setSupportActionBar(binding.toolbar);
|
||||||
|
// noinspection ConstantConditions
|
||||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -83,7 +84,7 @@ public class LoginActivity extends AbsBaseActivity implements View.OnClickListen
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(AuthenticationResult result) {
|
public void onResponse(AuthenticationResult result) {
|
||||||
if (result.getAccessToken() == null) return;
|
if (result.getAccessToken() == null) return;
|
||||||
check(context, binding.server.getText().toString(), result.getUser().getId(), result.getAccessToken());
|
check(binding.server.getText().toString(), result.getUser().getId(), result.getAccessToken());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -94,20 +95,21 @@ public class LoginActivity extends AbsBaseActivity implements View.OnClickListen
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void check(Context context, String server, String user, String token) {
|
private void check(String server, String user, String token) {
|
||||||
App.getApiClient().GetSystemInfoAsync(new Response<SystemInfo>() {
|
App.getApiClient().GetSystemInfoAsync(new Response<SystemInfo>() {
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(SystemInfo result) {
|
public void onResponse(SystemInfo result) {
|
||||||
if (Integer.parseInt(result.getVersion().substring(0, 1)) == 1) {
|
if (result.getVersion().charAt(0) == '1') {
|
||||||
PreferenceUtil.getInstance(context).setServer(server);
|
PreferenceUtil.getInstance(LoginActivity.this).setServer(server);
|
||||||
PreferenceUtil.getInstance(context).setUser(user);
|
PreferenceUtil.getInstance(LoginActivity.this).setUser(user);
|
||||||
PreferenceUtil.getInstance(context).setToken(token);
|
PreferenceUtil.getInstance(LoginActivity.this).setToken(token);
|
||||||
|
|
||||||
Intent intent = new Intent(context, MainActivity.class);
|
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
|
||||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
|
||||||
context.startActivity(intent);
|
startActivity(intent);
|
||||||
|
finish();
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(context, context.getResources().getString(R.string.error_version), Toast.LENGTH_SHORT).show();
|
Toast.makeText(LoginActivity.this, getResources().getString(R.string.error_version), Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -2,13 +2,14 @@ package com.dkanada.gramophone.ui.activities;
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
|
|
||||||
|
import androidx.annotation.RequiresApi;
|
||||||
|
|
||||||
import com.dkanada.gramophone.App;
|
import com.dkanada.gramophone.App;
|
||||||
import com.dkanada.gramophone.R;
|
import com.dkanada.gramophone.R;
|
||||||
import com.dkanada.gramophone.ui.activities.base.AbsBaseActivity;
|
import com.dkanada.gramophone.ui.activities.base.AbsBaseActivity;
|
||||||
|
|
@ -32,40 +33,31 @@ public class SplashActivity extends AbsBaseActivity {
|
||||||
@Override
|
@Override
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
if (detectBatteryOptimization()) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && detectBatteryOptimization()) {
|
||||||
showBatteryOptimizationDialog();
|
showBatteryOptimizationDialog();
|
||||||
} else {
|
} else {
|
||||||
login();
|
login();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequiresApi(api = Build.VERSION_CODES.M)
|
||||||
private boolean detectBatteryOptimization() {
|
private boolean detectBatteryOptimization() {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
String packageName = getPackageName();
|
||||||
String packageName = getPackageName();
|
PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
|
||||||
PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
|
return !pm.isIgnoringBatteryOptimizations(packageName);
|
||||||
return !pm.isIgnoringBatteryOptimizations(packageName);
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequiresApi(api = Build.VERSION_CODES.M)
|
||||||
private void showBatteryOptimizationDialog() {
|
private void showBatteryOptimizationDialog() {
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(SplashActivity.this);
|
AlertDialog.Builder builder = new AlertDialog.Builder(SplashActivity.this);
|
||||||
builder.setMessage(R.string.battery_optimizations_message)
|
builder.setMessage(R.string.battery_optimizations_message)
|
||||||
.setTitle(R.string.battery_optimizations_title)
|
.setTitle(R.string.battery_optimizations_title)
|
||||||
.setNegativeButton(R.string.ignore, new DialogInterface.OnClickListener() {
|
.setNegativeButton(R.string.ignore, (dialog, id) -> login())
|
||||||
public void onClick(DialogInterface dialog, int id) {
|
.setPositiveButton(R.string.disable, (dialog, id) -> openPowerSettings(SplashActivity.this))
|
||||||
login();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.setPositiveButton(R.string.disable, new DialogInterface.OnClickListener() {
|
|
||||||
public void onClick(DialogInterface dialog, int id) {
|
|
||||||
openPowerSettings(SplashActivity.this);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.show();
|
.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequiresApi(api = Build.VERSION_CODES.M)
|
||||||
private void openPowerSettings(Context context) {
|
private void openPowerSettings(Context context) {
|
||||||
Intent intent = new Intent();
|
Intent intent = new Intent();
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||||
|
|
@ -75,9 +67,7 @@ public class SplashActivity extends AbsBaseActivity {
|
||||||
|
|
||||||
public void login() {
|
public void login() {
|
||||||
if (PreferenceUtil.getInstance(this).getToken() == null) {
|
if (PreferenceUtil.getInstance(this).getToken() == null) {
|
||||||
Intent intent = new Intent(this, LoginActivity.class);
|
launchLoginActivity();
|
||||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
|
||||||
startActivity(intent);
|
|
||||||
} else {
|
} else {
|
||||||
final Context context = this;
|
final Context context = this;
|
||||||
|
|
||||||
|
|
@ -93,11 +83,16 @@ public class SplashActivity extends AbsBaseActivity {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onError(Exception exception) {
|
public void onError(Exception exception) {
|
||||||
Intent intent = new Intent(context, LoginActivity.class);
|
launchLoginActivity();
|
||||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
|
||||||
startActivity(intent);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void launchLoginActivity() {
|
||||||
|
Intent intent = new Intent(this, LoginActivity.class);
|
||||||
|
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
|
||||||
|
startActivity(intent);
|
||||||
|
finish();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue