Skip to content

Commit

Permalink
Migrate ContactsPreferenceActivity startup to type-safe API
Browse files Browse the repository at this point in the history
This change addresses #6277 bug in more comprehensible way.
All calls to Context.startActivity(...) starthing
ContactsPreferenceActivity are replaced with type-safe
calls to static ContactsPreferenceActivity.startActivity*
sets of APIs.

No client code should be calling `Intent(..., ContactsPreferenceActivity.class)`
constructor anymore.

See #5866 for discussion about the pattern used in this PR.

Signed-off-by: Chris Narkiewicz <hello@ezaquarii.com>
  • Loading branch information
ezaquarii committed Jun 13, 2020
1 parent 983a355 commit a623761
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
*/
package com.owncloud.android.ui.activity;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;

Expand All @@ -33,8 +34,6 @@
import com.owncloud.android.ui.fragment.contactsbackup.ContactListFragment;
import com.owncloud.android.ui.fragment.contactsbackup.ContactsBackupFragment;

import org.parceler.Parcels;

import javax.inject.Inject;

import androidx.drawerlayout.widget.DrawerLayout;
Expand All @@ -48,6 +47,24 @@ public class ContactsPreferenceActivity extends FileActivity implements FileFrag
public static final String TAG = ContactsPreferenceActivity.class.getSimpleName();


public static void startActivity(Context context) {
Intent intent = new Intent(context, ContactsPreferenceActivity.class);
context.startActivity(intent);
}

public static void startActivity(Context context, User user, OCFile file) {
Intent intent = new Intent(context, ContactsPreferenceActivity.class);
intent.putExtra(ContactListFragment.FILE_NAME, file);
intent.putExtra(ContactListFragment.USER, user);
context.startActivity(intent);
}

public static void startActivityWithoutSidebar(Context context) {
Intent contactsIntent = new Intent(context, ContactsPreferenceActivity.class);
contactsIntent.putExtra(ContactsPreferenceActivity.EXTRA_SHOW_SIDEBAR, false);
context.startActivity(contactsIntent);
}

public static final String PREFERENCE_CONTACTS_AUTOMATIC_BACKUP = "PREFERENCE_CONTACTS_AUTOMATIC_BACKUP";
public static final String PREFERENCE_CONTACTS_LAST_BACKUP = "PREFERENCE_CONTACTS_LAST_BACKUP";
public static final String BACKUP_TO_LIST = "BACKUP_TO_LIST";
Expand Down Expand Up @@ -92,8 +109,8 @@ protected void onCreate(Bundle savedInstanceState) {
fragment.setArguments(bundle);
transaction.add(R.id.frame_container, fragment);
} else {
OCFile file = Parcels.unwrap(intent.getParcelableExtra(ContactListFragment.FILE_NAME));
User user = Parcels.unwrap(intent.getParcelableExtra(ContactListFragment.USER));
OCFile file = intent.getParcelableExtra(ContactListFragment.FILE_NAME);
User user = intent.getParcelableExtra(ContactListFragment.USER);
ContactListFragment contactListFragment = ContactListFragment.newInstance(file, user);
transaction.add(R.id.frame_container, contactListFragment);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,7 @@ private void onNavigationItemClicked(final MenuItem menuItem) {
startActivity(SyncedFoldersActivity.class);
break;
case R.id.nav_contacts:
startActivity(ContactsPreferenceActivity.class);
ContactsPreferenceActivity.startActivity(this);
break;
case R.id.nav_settings:
startActivity(SettingsActivity.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2357,10 +2357,7 @@ public void startRichWorkspacePreview(OCFile folder) {

public void startContactListFragment(OCFile file) {
final User user = getUser().orElseThrow(RuntimeException::new);
Intent intent = new Intent(this, ContactsPreferenceActivity.class);
intent.putExtra(ContactListFragment.FILE_NAME, Parcels.wrap(file));
intent.putExtra(ContactListFragment.USER, user);
startActivity(intent);
ContactsPreferenceActivity.startActivity(this, user, file);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -459,9 +459,7 @@ private void setupContactsBackupPreference(PreferenceCategory preferenceCategory
if (pContactsBackup != null) {
if (contactsBackupEnabled) {
pContactsBackup.setOnPreferenceClickListener(preference -> {
Intent contactsIntent = new Intent(getApplicationContext(), ContactsPreferenceActivity.class);
contactsIntent.putExtra(ContactsPreferenceActivity.EXTRA_SHOW_SIDEBAR, false);
startActivity(contactsIntent);
ContactsPreferenceActivity.startActivityWithoutSidebar(this);
return true;
});
} else {
Expand Down

0 comments on commit a623761

Please sign in to comment.