BaseActivity: Add an activity that all other activities inherit from.

Now that we have this activity, remove the duplication of onResume/onPause and
onOptionsItemSelected.
pull/14/head
Tom Hacohen 7 years ago
parent d86edd7688
commit 1cf1d0f5b0

@ -20,7 +20,6 @@ import android.support.v4.app.LoaderManager;
import android.support.v4.content.AsyncTaskLoader;
import android.support.v4.content.Loader;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.text.Html;
import android.text.Spanned;
@ -30,6 +29,11 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.etesync.syncadapter.App;
import com.etesync.syncadapter.BuildConfig;
import com.etesync.syncadapter.Constants;
import com.etesync.syncadapter.R;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
@ -37,15 +41,11 @@ import java.io.IOException;
import java.io.InputStream;
import java.util.logging.Level;
import com.etesync.syncadapter.App;
import com.etesync.syncadapter.BuildConfig;
import com.etesync.syncadapter.Constants;
import com.etesync.syncadapter.R;
import ezvcard.Ezvcard;
import lombok.Cleanup;
import lombok.RequiredArgsConstructor;
public class AboutActivity extends AppCompatActivity {
public class AboutActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {

@ -33,7 +33,6 @@ import android.provider.ContactsContract;
import android.support.design.widget.Snackbar;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.CardView;
import android.support.v7.widget.Toolbar;
import android.text.TextUtils;
@ -68,7 +67,6 @@ import java.io.IOException;
import java.util.List;
import java.util.logging.Level;
import at.bitfire.cert4android.CustomCertManager;
import at.bitfire.ical4android.TaskProvider;
import at.bitfire.vcard4android.ContactsStorageException;
import io.requery.Persistable;
@ -77,7 +75,7 @@ import tourguide.tourguide.ToolTip;
import static android.content.ContentResolver.SYNC_OBSERVER_TYPE_ACTIVE;
public class AccountActivity extends AppCompatActivity implements Toolbar.OnMenuItemClickListener, PopupMenu.OnMenuItemClickListener, LoaderManager.LoaderCallbacks<AccountActivity.AccountInfo>, Refreshable {
public class AccountActivity extends BaseActivity implements Toolbar.OnMenuItemClickListener, PopupMenu.OnMenuItemClickListener, LoaderManager.LoaderCallbacks<AccountActivity.AccountInfo>, Refreshable {
public static final String EXTRA_ACCOUNT = "account";
private static final String HINT_VIEW_COLLECTION = "ViewCollection";
@ -127,22 +125,6 @@ public class AccountActivity extends AppCompatActivity implements Toolbar.OnMenu
}
}
@Override
protected void onPause() {
super.onPause();
CustomCertManager certManager = ((App)getApplicationContext()).getCertManager();
if (certManager != null)
certManager.appInForeground = false;
}
@Override
protected void onResume() {
super.onResume();
CustomCertManager certManager = ((App)getApplicationContext()).getCertManager();
if (certManager != null)
certManager.appInForeground = true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_account, menu);

@ -15,12 +15,10 @@ import android.content.Intent;
import android.content.SyncStatusObserver;
import android.os.Bundle;
import android.provider.CalendarContract;
import android.provider.ContactsContract;
import android.support.v4.app.LoaderManager;
import android.support.v4.app.NavUtils;
import android.support.v4.content.AsyncTaskLoader;
import android.support.v4.content.Loader;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.preference.EditTextPreference;
import android.support.v7.preference.ListPreference;
import android.support.v7.preference.Preference;
@ -38,7 +36,7 @@ import com.etesync.syncadapter.ui.setup.LoginCredentialsChangeFragment;
import static com.etesync.syncadapter.Constants.KEY_ACCOUNT;
public class AccountSettingsActivity extends AppCompatActivity {
public class AccountSettingsActivity extends BaseActivity {
private Account account;
@Override

@ -19,7 +19,6 @@ import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Gravity;
import android.view.MenuItem;
@ -32,16 +31,13 @@ import com.etesync.syncadapter.ui.setup.LoginActivity;
import com.etesync.syncadapter.utils.HintManager;
import com.etesync.syncadapter.utils.ShowcaseBuilder;
import tourguide.tourguide.Overlay;
import tourguide.tourguide.Pointer;
import tourguide.tourguide.ToolTip;
import tourguide.tourguide.TourGuide;
import static android.content.ContentResolver.SYNC_OBSERVER_TYPE_SETTINGS;
import static com.etesync.syncadapter.BuildConfig.DEBUG;
import static com.etesync.syncadapter.Constants.serviceUrl;
public class AccountsActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener, SyncStatusObserver {
public class AccountsActivity extends BaseActivity implements NavigationView.OnNavigationItemSelectedListener, SyncStatusObserver {
public static final String HINT_ACCOUNT_ADD = "AddAccount";
private Snackbar syncStatusSnackbar;

@ -11,22 +11,21 @@ package com.etesync.syncadapter.ui;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.preference.EditTextPreference;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceFragmentCompat;
import android.support.v7.preference.SwitchPreferenceCompat;
import java.net.URI;
import java.net.URISyntaxException;
import com.etesync.syncadapter.App;
import com.etesync.syncadapter.R;
import com.etesync.syncadapter.model.ServiceDB;
import com.etesync.syncadapter.model.Settings;
import com.etesync.syncadapter.utils.HintManager;
public class AppSettingsActivity extends AppCompatActivity {
import java.net.URI;
import java.net.URISyntaxException;
public class AppSettingsActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {

@ -0,0 +1,37 @@
package com.etesync.syncadapter.ui;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import com.etesync.syncadapter.App;
public class BaseActivity extends AppCompatActivity {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
if (!getSupportFragmentManager().popBackStackImmediate()) {
finish();
}
return true;
}
return false;
}
@Override
protected void onResume() {
super.onResume();
App app = (App) getApplicationContext();
if (app.getCertManager() != null)
app.getCertManager().appInForeground = true;
}
@Override
protected void onPause() {
super.onPause();
App app = (App) getApplicationContext();
if (app.getCertManager() != null)
app.getCertManager().appInForeground = false;
}
}

@ -7,7 +7,6 @@ import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.text.InputType;
import android.view.MenuItem;
import android.view.View;
@ -23,7 +22,7 @@ import com.etesync.syncadapter.resource.LocalCalendar;
import io.requery.Persistable;
import io.requery.sql.EntityDataStore;
public class CollectionMembersActivity extends AppCompatActivity implements Refreshable {
public class CollectionMembersActivity extends BaseActivity implements Refreshable {
public final static String EXTRA_ACCOUNT = "account",
EXTRA_COLLECTION_INFO = "collectionInfo";
@ -120,34 +119,9 @@ public class CollectionMembersActivity extends AppCompatActivity implements Refr
dialog.show();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
if (!getSupportFragmentManager().popBackStackImmediate()) {
finish();
}
return true;
}
return false;
}
@Override
protected void onResume() {
super.onResume();
App app = (App) getApplicationContext();
if (app.getCertManager() != null)
app.getCertManager().appInForeground = true;
refresh();
}
@Override
protected void onPause() {
super.onPause();
App app = (App) getApplicationContext();
if (app.getCertManager() != null)
app.getCertManager().appInForeground = false;
}
}

@ -14,7 +14,6 @@ import android.content.Intent;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.support.v4.app.NavUtils;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
@ -22,14 +21,13 @@ import android.view.View;
import android.widget.EditText;
import com.etesync.syncadapter.R;
import com.etesync.syncadapter.journalmanager.Crypto;
import com.etesync.syncadapter.model.CollectionInfo;
import org.apache.commons.lang3.StringUtils;
import yuku.ambilwarna.AmbilWarnaDialog;
public class CreateCollectionActivity extends AppCompatActivity {
public class CreateCollectionActivity extends BaseActivity {
static final String EXTRA_ACCOUNT = "account",
EXTRA_COLLECTION_INFO = "collectionInfo";

@ -26,26 +26,14 @@ import android.provider.CalendarContract;
import android.provider.ContactsContract;
import android.support.v4.content.ContextCompat;
import android.support.v4.content.FileProvider;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.commons.lang3.text.WordUtils;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import com.etesync.syncadapter.AccountSettings;
import com.etesync.syncadapter.App;
import com.etesync.syncadapter.BuildConfig;
import com.etesync.syncadapter.Constants;
import com.etesync.syncadapter.InvalidAccountException;
import com.etesync.syncadapter.R;
import com.etesync.syncadapter.journalmanager.Exceptions.HttpException;
@ -55,6 +43,16 @@ import com.etesync.syncadapter.model.ServiceDB;
import com.etesync.syncadapter.model.ServiceEntity;
import com.etesync.syncadapter.resource.LocalAddressBook;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.commons.lang3.text.WordUtils;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import at.bitfire.vcard4android.ContactsStorageException;
import io.requery.Persistable;
import io.requery.sql.EntityDataStore;
@ -62,7 +60,7 @@ import lombok.Cleanup;
import static com.etesync.syncadapter.Constants.KEY_ACCOUNT;
public class DebugInfoActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacks<String> {
public class DebugInfoActivity extends BaseActivity implements LoaderManager.LoaderCallbacks<String> {
public static final String
KEY_THROWABLE = "throwable",
KEY_LOGS = "logs",

@ -16,14 +16,13 @@ import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.NotificationManagerCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import com.etesync.syncadapter.Constants;
import com.etesync.syncadapter.R;
import com.etesync.syncadapter.resource.LocalTaskList;
public class PermissionsActivity extends AppCompatActivity {
public class PermissionsActivity extends BaseActivity {
final static private int REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS = 124;
public static final String

@ -17,7 +17,6 @@ import android.os.Bundle;
import android.provider.CalendarContract;
import android.provider.ContactsContract;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
@ -46,7 +45,7 @@ import io.requery.sql.EntityDataStore;
import tourguide.tourguide.ToolTip;
import tourguide.tourguide.TourGuide;
public class ViewCollectionActivity extends AppCompatActivity implements Refreshable {
public class ViewCollectionActivity extends BaseActivity implements Refreshable {
private final static String HINT_IMPORT = "Import";
public final static String EXTRA_ACCOUNT = "account",
EXTRA_COLLECTION_INFO = "collectionInfo";
@ -139,37 +138,12 @@ public class ViewCollectionActivity extends AppCompatActivity implements Refresh
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
if (!getSupportFragmentManager().popBackStackImmediate()) {
finish();
}
return true;
}
return false;
}
@Override
protected void onResume() {
super.onResume();
App app = (App) getApplicationContext();
if (app.getCertManager() != null)
app.getCertManager().appInForeground = true;
refresh();
}
@Override
protected void onPause() {
super.onPause();
App app = (App) getApplicationContext();
if (app.getCertManager() != null)
app.getCertManager().appInForeground = false;
}
public void onEditCollection(MenuItem item) {
if (isOwner) {
startActivity(EditCollectionActivity.newIntent(this, account, info));

@ -8,8 +8,6 @@ import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.KeyEvent;
import android.view.MenuItem;
import android.view.View;
@ -23,7 +21,7 @@ import android.widget.ProgressBar;
import com.etesync.syncadapter.Constants;
import com.etesync.syncadapter.R;
public class WebViewActivity extends AppCompatActivity {
public class WebViewActivity extends BaseActivity {
private static final String KEY_URL = "url";
private static final String QUERY_KEY_EMBEDDED = "embedded";
@ -202,15 +200,4 @@ public class WebViewActivity extends AppCompatActivity {
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
if (!getSupportFragmentManager().popBackStackImmediate()) {
finish();
}
return true;
}
return false;
}
}

@ -7,7 +7,6 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.AppCompatActivity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MenuItem;
@ -16,11 +15,11 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.etesync.syncadapter.App;
import com.etesync.syncadapter.R;
import com.etesync.syncadapter.model.CollectionInfo;
import com.etesync.syncadapter.ui.BaseActivity;
public class ImportActivity extends AppCompatActivity implements SelectImportMethod, ResultFragment.OnImportCallback, DialogInterface {
public class ImportActivity extends BaseActivity implements SelectImportMethod, ResultFragment.OnImportCallback, DialogInterface {
public final static String EXTRA_ACCOUNT = "account",
EXTRA_COLLECTION_INFO = "collectionInfo";
@ -103,24 +102,6 @@ public class ImportActivity extends AppCompatActivity implements SelectImportMet
return super.onKeyDown(keyCode, event);
}
@Override
protected void onResume() {
super.onResume();
App app = (App) getApplicationContext();
if (app.getCertManager() != null)
app.getCertManager().appInForeground = true;
}
@Override
protected void onPause() {
super.onPause();
App app = (App) getApplicationContext();
if (app.getCertManager() != null)
app.getCertManager().appInForeground = false;
}
@Override
public void onImportResult(ResultFragment.ImportResult importResult) {
ResultFragment fragment = ResultFragment.newInstance(importResult);

@ -8,22 +8,20 @@
package com.etesync.syncadapter.ui.setup;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import com.etesync.syncadapter.App;
import com.etesync.syncadapter.Constants;
import com.etesync.syncadapter.R;
import com.etesync.syncadapter.ui.BaseActivity;
import com.etesync.syncadapter.ui.WebViewActivity;
/**
* Activity to initially connect to a server and create an account.
* Fields for server/user data can be pre-filled with extras in the Intent.
*/
public class LoginActivity extends AppCompatActivity {
public class LoginActivity extends BaseActivity {
/**
* When set, and {@link #EXTRA_PASSWORD} is set too, the user name field will be set to this value.
*/
@ -47,24 +45,6 @@ public class LoginActivity extends AppCompatActivity {
}
@Override
protected void onResume() {
super.onResume();
App app = (App)getApplicationContext();
if (app.getCertManager() != null)
app.getCertManager().appInForeground = true;
}
@Override
protected void onPause() {
super.onPause();
App app = (App)getApplicationContext();
if (app.getCertManager() != null)
app.getCertManager().appInForeground = false;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_login, menu);

Loading…
Cancel
Save