mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-14 22:43:57 +00:00
feat: reset data and restart app on logout
This commit is contained in:
1 parent
2213753fb9
commit
e72cbfc571
5 files changed
+36
-42
No files matched your search
+4
-22
@@ -1,40 +1,22 @@
|
||||
package com.sap.sailing.android.shared.ui.activities;
|
||||
|
||||
import com.sap.sailing.android.shared.logging.ExLog;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import com.sap.sailing.android.shared.logging.ExLog;
|
||||
|
||||
public class ResilientActivity extends LoggableActivity {
|
||||
private static final String TAG = ResilientActivity.class.getName();
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case android.R.id.home:
|
||||
if (item.getItemId() == android.R.id.home) {
|
||||
ExLog.i(this, TAG, "Clicked HOME.");
|
||||
return onHomeClicked();
|
||||
default:
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
protected boolean onHomeClicked() {
|
||||
return false;
|
||||
}
|
||||
|
||||
protected void fadeActivity(Class<?> activity, boolean newTopTask) {
|
||||
Intent intent = new Intent(getBaseContext(), activity);
|
||||
if (newTopTask) {
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
}
|
||||
fadeActivity(intent);
|
||||
}
|
||||
|
||||
protected void fadeActivity(Intent intent) {
|
||||
startActivity(intent);
|
||||
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
|
||||
finish();
|
||||
}
|
||||
}
|
||||
+18
@@ -1,12 +1,30 @@
|
||||
package com.sap.sailing.racecommittee.app;
|
||||
|
||||
import android.content.Intent;
|
||||
|
||||
import com.sap.sailing.android.shared.application.LoggableApplication;
|
||||
import com.sap.sailing.racecommittee.app.utils.PreferenceHelper;
|
||||
|
||||
public class RaceApplication extends LoggableApplication {
|
||||
|
||||
private static RaceApplication sInstance;
|
||||
|
||||
public static RaceApplication getInstance() {
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
sInstance = this;
|
||||
new PreferenceHelper(this).setupPreferences();
|
||||
}
|
||||
|
||||
public void restart() {
|
||||
final Intent intent = getPackageManager().getLaunchIntentForPackage(getPackageName());
|
||||
if (intent != null) {
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
startActivity(intent);
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
-1
@@ -18,6 +18,7 @@ import com.sap.sailing.android.shared.util.AuthCheckTask;
|
||||
import com.sap.sailing.android.shared.util.BitmapHelper;
|
||||
import com.sap.sailing.racecommittee.app.AppPreferences;
|
||||
import com.sap.sailing.racecommittee.app.R;
|
||||
import com.sap.sailing.racecommittee.app.RaceApplication;
|
||||
import com.sap.sailing.racecommittee.app.data.DataManager;
|
||||
import com.sap.sailing.racecommittee.app.domain.BackPressListener;
|
||||
import com.sap.sailing.racecommittee.app.utils.ThemeHelper;
|
||||
@@ -108,7 +109,7 @@ public class BaseActivity extends SendingServiceAwareActivity implements AuthChe
|
||||
*/
|
||||
protected boolean onReset() {
|
||||
resetDataManager();
|
||||
fadeActivity(LoginActivity.class, true);
|
||||
RaceApplication.getInstance().restart();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
+3
-14
@@ -1,7 +1,5 @@
|
||||
package com.sap.sailing.racecommittee.app.ui.activities;
|
||||
|
||||
import android.content.DialogInterface;
|
||||
import android.content.DialogInterface.OnClickListener;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.ActionBar;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
@@ -43,12 +41,8 @@ public abstract class SessionActivity extends BaseActivity {
|
||||
ExLog.i(this, TAG, String.format("Logging out from activity %s", this.getClass().getSimpleName()));
|
||||
AlertDialog dialog = new AlertDialog.Builder(this)
|
||||
.setTitle(getString(R.string.change_dialog_title)).setMessage(getString(R.string.change_dialog_message))
|
||||
.setPositiveButton(android.R.string.ok, new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
doLogout();
|
||||
}
|
||||
}).setNegativeButton(android.R.string.cancel, null).create();
|
||||
.setPositiveButton(android.R.string.ok, (dialog1, which) -> doLogout())
|
||||
.setNegativeButton(android.R.string.cancel, null).create();
|
||||
dialog.show();
|
||||
return true;
|
||||
}
|
||||
@@ -58,12 +52,7 @@ public abstract class SessionActivity extends BaseActivity {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||
builder.setTitle(this.getString(R.string.data_reload_title));
|
||||
builder.setMessage(this.getString(R.string.data_reload_message));
|
||||
builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
doLogout();
|
||||
}
|
||||
});
|
||||
builder.setPositiveButton(android.R.string.ok, (dialog, which) -> doLogout());
|
||||
builder.setCancelable(false);
|
||||
builder.show();
|
||||
}
|
||||
|
||||
+9
-5
@@ -1,8 +1,8 @@
|
||||
package com.sap.sailing.racecommittee.app.ui.fragments;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
@@ -27,10 +27,10 @@ import com.sap.sailing.android.shared.util.ViewHelper;
|
||||
import com.sap.sailing.domain.base.configuration.DeviceConfiguration;
|
||||
import com.sap.sailing.racecommittee.app.AppPreferences;
|
||||
import com.sap.sailing.racecommittee.app.R;
|
||||
import com.sap.sailing.racecommittee.app.RaceApplication;
|
||||
import com.sap.sailing.racecommittee.app.data.DataManager;
|
||||
import com.sap.sailing.racecommittee.app.data.clients.LoadClient;
|
||||
import com.sap.sailing.racecommittee.app.domain.configuration.impl.PreferencesDeviceConfigurationLoader;
|
||||
import com.sap.sailing.racecommittee.app.ui.activities.PasswordActivity;
|
||||
import com.sap.sailing.racecommittee.app.ui.fragments.preference.CourseDesignerPreferenceFragment;
|
||||
import com.sap.sailing.racecommittee.app.ui.fragments.preference.GeneralPreferenceFragment;
|
||||
import com.sap.sailing.racecommittee.app.ui.fragments.preference.RegattaPreferenceFragment;
|
||||
@@ -122,9 +122,13 @@ public class MainPreferenceFragment extends LoggableFragment {
|
||||
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
AppPreferences.on(getActivity()).setAccessToken(null);
|
||||
startActivity(new Intent(getActivity(), PasswordActivity.class));
|
||||
getActivity().finish();
|
||||
final Activity activity = requireActivity();
|
||||
AppPreferences.on(activity).setAccessToken(null);
|
||||
|
||||
DataManager dataManager = (DataManager) DataManager.create(activity);
|
||||
dataManager.resetAll();
|
||||
|
||||
RaceApplication.getInstance().restart();
|
||||
}
|
||||
}).setNegativeButton(android.R.string.cancel, null).show();
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user