Implemented Sign Out as a first PanicKit Response

This closes #204
This commit is contained in:
Torsten Grote
2016-01-04 17:08:59 -02:00
parent aa1b9328c4
commit e603b4f60e
17 changed files with 281 additions and 8 deletions

View File

@@ -0,0 +1,40 @@
package org.briarproject.android.panic;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import org.briarproject.android.BaseActivity;
public class ExitActivity extends BaseActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= 21) {
finishAndRemoveTask();
} else {
finish();
}
System.exit(0);
}
public static void exitAndRemoveFromRecentApps(final BaseActivity activity) {
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(activity, ExitActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
| Intent.FLAG_ACTIVITY_CLEAR_TASK
| Intent.FLAG_ACTIVITY_NO_ANIMATION);
activity.startActivity(intent);
}
});
}
}

View File

@@ -0,0 +1,33 @@
package org.briarproject.android.panic;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.view.MenuItem;
import org.briarproject.R;
import org.briarproject.android.BriarActivity;
public class PanicPreferencesActivity extends BriarActivity {
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
}
setContentView(R.layout.activity_panic_preferences);
}
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
onBackPressed();
return true;
}
return false;
}
}

View File

@@ -0,0 +1,14 @@
package org.briarproject.android.panic;
import android.os.Bundle;
import android.support.v7.preference.PreferenceFragmentCompat;
import org.briarproject.R;
public class PanicPreferencesFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle bundle, String s) {
addPreferencesFromResource(R.xml.panic_preferences);
}
}

View File

@@ -0,0 +1,37 @@
package org.briarproject.android.panic;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import android.support.v7.preference.PreferenceManager;
import org.briarproject.android.BriarActivity;
import java.util.logging.Logger;
public class PanicResponderActivity extends BriarActivity {
private static final Logger LOG =
Logger.getLogger(PanicResponderActivity.class.getName());
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedPreferences sharedPref = PreferenceManager
.getDefaultSharedPreferences(this);
Intent intent = getIntent();
if (intent != null && sharedPref.getBoolean("pref_key_lock", true)) {
LOG.info("Signing out...");
signOut(true);
}
if (Build.VERSION.SDK_INT >= 21) {
finishAndRemoveTask();
} else {
finish();
}
}
}