diff --git a/briar-android/src/main/java/org/briarproject/briar/android/account/AuthorNameFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/account/AuthorNameFragment.java index c41b0bbfb..f14bba7fe 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/account/AuthorNameFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/account/AuthorNameFragment.java @@ -13,7 +13,6 @@ import com.google.android.material.textfield.TextInputLayout; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.briar.R; -import org.briarproject.briar.android.activity.ActivityComponent; import javax.annotation.Nullable; @@ -35,11 +34,6 @@ public class AuthorNameFragment extends SetupFragment { return new AuthorNameFragment(); } - @Override - public void injectFragment(ActivityComponent component) { - component.inject(this); - } - @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, diff --git a/briar-android/src/main/java/org/briarproject/briar/android/account/DozeFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/account/DozeFragment.java index 94f5feb1f..771b2b006 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/account/DozeFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/account/DozeFragment.java @@ -13,7 +13,6 @@ import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.briar.R; import org.briarproject.briar.android.account.PowerView.OnCheckedChangedListener; -import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.util.UiUtils; import androidx.annotation.Nullable; @@ -39,11 +38,6 @@ public class DozeFragment extends SetupFragment return new DozeFragment(); } - @Override - public void injectFragment(ActivityComponent component) { - component.inject(this); - } - @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, diff --git a/briar-android/src/main/java/org/briarproject/briar/android/account/SetPasswordFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/account/SetPasswordFragment.java index 94dc5fb13..509fd2dc8 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/account/SetPasswordFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/account/SetPasswordFragment.java @@ -15,7 +15,6 @@ import com.google.android.material.textfield.TextInputLayout; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.briar.R; -import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.login.StrengthMeter; import javax.annotation.Nullable; @@ -43,11 +42,6 @@ public class SetPasswordFragment extends SetupFragment { return new SetPasswordFragment(); } - @Override - public void injectFragment(ActivityComponent component) { - component.inject(this); - } - @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, diff --git a/briar-android/src/main/java/org/briarproject/briar/android/account/SetupFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/account/SetupFragment.java index decd7d009..017846064 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/account/SetupFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/account/SetupFragment.java @@ -1,6 +1,5 @@ package org.briarproject.briar.android.account; -import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.KeyEvent; @@ -14,10 +13,12 @@ import android.widget.TextView.OnEditorActionListener; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.briar.R; +import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.fragment.BaseFragment; import javax.inject.Inject; +import androidx.annotation.CallSuper; import androidx.annotation.Nullable; import androidx.lifecycle.ViewModelProvider; @@ -28,18 +29,17 @@ import static org.briarproject.briar.android.util.UiUtils.showOnboardingDialog; @MethodsNotNullByDefault @ParametersNotNullByDefault -abstract class SetupFragment extends BaseFragment implements TextWatcher, +public abstract class SetupFragment extends BaseFragment implements TextWatcher, OnEditorActionListener, OnClickListener { - private final static String STATE_KEY_CLICKED = "setupFragmentClicked"; - @Inject ViewModelProvider.Factory viewModelFactory; SetupViewModel viewModel; @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); + @CallSuper + public void injectFragment(ActivityComponent component) { + component.inject(this); viewModel = new ViewModelProvider(requireActivity()) .get(SetupViewModel.class); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityComponent.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityComponent.java index d1f3ad737..dca9a5f0e 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityComponent.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/activity/ActivityComponent.java @@ -4,10 +4,8 @@ import android.app.Activity; import org.briarproject.briar.android.AndroidComponent; import org.briarproject.briar.android.StartupFailureActivity; -import org.briarproject.briar.android.account.AuthorNameFragment; -import org.briarproject.briar.android.account.DozeFragment; -import org.briarproject.briar.android.account.SetPasswordFragment; import org.briarproject.briar.android.account.SetupActivity; +import org.briarproject.briar.android.account.SetupFragment; import org.briarproject.briar.android.account.UnlockActivity; import org.briarproject.briar.android.blog.BlogActivity; import org.briarproject.briar.android.blog.BlogFragment; @@ -178,11 +176,7 @@ public interface ActivityComponent { // Fragments - void inject(AuthorNameFragment fragment); - - void inject(SetPasswordFragment fragment); - - void inject(DozeFragment fragment); + void inject(SetupFragment fragment); void inject(PasswordFragment imageFragment); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/AddContactActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/AddContactActivity.java index f93d0167a..f97ed0863 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/AddContactActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/AddContactActivity.java @@ -17,7 +17,6 @@ import javax.inject.Inject; import androidx.appcompat.app.ActionBar; import androidx.lifecycle.ViewModelProvider; -import androidx.lifecycle.ViewModelProviders; import static android.content.Intent.ACTION_SEND; import static android.content.Intent.ACTION_VIEW; @@ -36,6 +35,8 @@ public class AddContactActivity extends BriarActivity implements @Override public void injectActivity(ActivityComponent component) { component.inject(this); + viewModel = new ViewModelProvider(this, viewModelFactory) + .get(AddContactViewModel.class); } @Override @@ -48,8 +49,6 @@ public class AddContactActivity extends BriarActivity implements ab.setDisplayHomeAsUpEnabled(true); } - viewModel = ViewModelProviders.of(this, viewModelFactory) - .get(AddContactViewModel.class); viewModel.onCreate(); viewModel.getRemoteLinkEntered().observeEvent(this, entered -> { if (entered) { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/LinkExchangeFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/LinkExchangeFragment.java index 20566613b..87cdeaf1c 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/LinkExchangeFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/LinkExchangeFragment.java @@ -29,7 +29,6 @@ import javax.inject.Inject; import androidx.core.app.ShareCompat.IntentBuilder; import androidx.lifecycle.ViewModelProvider; -import androidx.lifecycle.ViewModelProviders; import static android.content.Context.CLIPBOARD_SERVICE; import static android.widget.Toast.LENGTH_SHORT; @@ -60,6 +59,8 @@ public class LinkExchangeFragment extends BaseFragment @Override public void injectFragment(ActivityComponent component) { component.inject(this); + viewModel = new ViewModelProvider(getActivity(), viewModelFactory) + .get(AddContactViewModel.class); } @Nullable @@ -69,9 +70,6 @@ public class LinkExchangeFragment extends BaseFragment @Nullable Bundle savedInstanceState) { if (getActivity() == null || getContext() == null) return null; - viewModel = ViewModelProviders.of(getActivity(), viewModelFactory) - .get(AddContactViewModel.class); - View v = inflater.inflate(R.layout.fragment_link_exchange, container, false); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/PendingContactListActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/PendingContactListActivity.java index 22aea5294..359f79396 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/PendingContactListActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/PendingContactListActivity.java @@ -23,7 +23,6 @@ import javax.inject.Inject; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AlertDialog; import androidx.lifecycle.ViewModelProvider; -import androidx.lifecycle.ViewModelProviders; import androidx.recyclerview.widget.LinearLayoutManager; import static com.google.android.material.snackbar.Snackbar.LENGTH_INDEFINITE; @@ -46,6 +45,8 @@ public class PendingContactListActivity extends BriarActivity @Override public void injectActivity(ActivityComponent component) { component.inject(this); + viewModel = new ViewModelProvider(this, viewModelFactory) + .get(PendingContactListViewModel.class); } @Override @@ -59,8 +60,6 @@ public class PendingContactListActivity extends BriarActivity ab.setDisplayHomeAsUpEnabled(true); } - viewModel = ViewModelProviders.of(this, viewModelFactory) - .get(PendingContactListViewModel.class); viewModel.onCreate(); viewModel.getPendingContacts() .observe(this, this::onPendingContactsChanged); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/AliasDialogFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/AliasDialogFragment.java index 8db22b212..fddc8d98a 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/AliasDialogFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/AliasDialogFragment.java @@ -14,6 +14,7 @@ import org.briarproject.bramble.api.contact.Contact; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault; import org.briarproject.briar.R; +import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.activity.BaseActivity; import javax.inject.Inject; @@ -51,7 +52,14 @@ public class AliasDialogFragment extends AppCompatDialogFragment { @Override public void onAttach(Context ctx) { super.onAttach(ctx); - ((BaseActivity) requireActivity()).getActivityComponent().inject(this); + injectFragment( + ((BaseActivity) requireActivity()).getActivityComponent()); + } + + public void injectFragment(ActivityComponent component) { + component.inject(this); + viewModel = new ViewModelProvider(requireActivity(), viewModelFactory) + .get(ConversationViewModel.class); } @Override @@ -59,9 +67,6 @@ public class AliasDialogFragment extends AppCompatDialogFragment { super.onCreate(savedInstanceState); setStyle(STYLE_NO_TITLE, R.style.BriarDialogTheme); - - viewModel = new ViewModelProvider(requireActivity(), viewModelFactory) - .get(ConversationViewModel.class); } @Override diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java index 17da35e55..4ca1fd320 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java @@ -211,6 +211,13 @@ public class ConversationActivity extends BriarActivity private volatile ContactId contactId; + @Override + public void injectActivity(ActivityComponent component) { + component.inject(this); + viewModel = new ViewModelProvider(this, viewModelFactory) + .get(ConversationViewModel.class); + } + @Override public void onCreate(@Nullable Bundle state) { if (SDK_INT >= 21) { @@ -227,8 +234,6 @@ public class ConversationActivity extends BriarActivity if (id == -1) throw new IllegalStateException(); contactId = new ContactId(id); - viewModel = new ViewModelProvider(this, viewModelFactory) - .get(ConversationViewModel.class); viewModel.setContactId(contactId); attachmentRetriever = viewModel.getAttachmentRetriever(); @@ -297,11 +302,6 @@ public class ConversationActivity extends BriarActivity if (items > 0) list.scrollToPosition(items - 1); } - @Override - public void injectActivity(ActivityComponent component) { - component.inject(this); - } - @Override protected void onActivityResult(int request, int result, @Nullable Intent data) { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationSettingsDialog.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationSettingsDialog.java index f55d4c6d9..b3c8417b2 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationSettingsDialog.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationSettingsDialog.java @@ -85,8 +85,6 @@ public class ConversationSettingsDialog extends DialogFragment { ContactId contactId = new ContactId(id); FragmentActivity activity = requireActivity(); - viewModel = new ViewModelProvider(activity, viewModelFactory) - .get(ConversationViewModel.class); viewModel.setContactId(contactId); Toolbar toolbar = view.findViewById(R.id.toolbar); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageActivity.java index a181b66f8..d84f7caa8 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageActivity.java @@ -36,7 +36,6 @@ import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentStatePagerAdapter; import androidx.lifecycle.ViewModelProvider; -import androidx.lifecycle.ViewModelProviders; import androidx.viewpager.widget.ViewPager; import static android.content.Intent.ACTION_CREATE_DOCUMENT; @@ -84,6 +83,8 @@ public class ImageActivity extends BriarActivity @Override public void injectActivity(ActivityComponent component) { component.inject(this); + viewModel = new ViewModelProvider(this, viewModelFactory) + .get(ImageViewModel.class); } @Override @@ -108,9 +109,7 @@ public class ImageActivity extends BriarActivity long time = i.getLongExtra(DATE, 0); byte[] messageIdBytes = requireNonNull(i.getByteArrayExtra(ITEM_ID)); - // get View Model - viewModel = ViewModelProviders.of(this, viewModelFactory) - .get(ImageViewModel.class); + // connect to View Model viewModel.expectAttachments(attachments); viewModel.getSaveState().observeEvent(this, this::onImageSaveStateChanged); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageFragment.java index 5d588b750..c80308b0b 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageFragment.java @@ -17,6 +17,7 @@ import com.github.chrisbanes.photoview.PhotoView; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.briar.R; +import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.activity.BaseActivity; import org.briarproject.briar.android.attachment.AttachmentItem; import org.briarproject.briar.android.conversation.glide.GlideApp; @@ -29,7 +30,6 @@ import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.ViewModelProvider; -import androidx.lifecycle.ViewModelProviders; import static android.os.Build.VERSION.SDK_INT; import static android.widget.ImageView.ScaleType.FIT_START; @@ -58,6 +58,12 @@ public class ImageFragment extends Fragment private ImageViewModel viewModel; private PhotoView photoView; + public void injectFragment(ActivityComponent component) { + component.inject(this); + viewModel = new ViewModelProvider(requireActivity(), + viewModelFactory).get(ImageViewModel.class); + } + static ImageFragment newInstance(AttachmentItem a, MessageId conversationMessageId, boolean isFirst) { ImageFragment f = new ImageFragment(); @@ -72,7 +78,8 @@ public class ImageFragment extends Fragment @Override public void onAttach(Context ctx) { super.onAttach(ctx); - ((BaseActivity) requireActivity()).getActivityComponent().inject(this); + injectFragment( + ((BaseActivity) requireActivity()).getActivityComponent()); } @Override @@ -94,9 +101,6 @@ public class ImageFragment extends Fragment View v = inflater.inflate(R.layout.fragment_image, container, false); - viewModel = ViewModelProviders.of(requireActivity(), - viewModelFactory).get(ImageViewModel.class); - photoView = v.findViewById(R.id.photoView); photoView.setScaleLevels(1, 2, 4); photoView.setOnClickListener(view -> viewModel.clickImage()); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/introduction/ContactListViewModel.java b/briar-android/src/main/java/org/briarproject/briar/android/introduction/ContactListViewModel.java deleted file mode 100644 index e69de29bb..000000000 diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/OpenDatabaseFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/login/OpenDatabaseFragment.java index 1d89bfae0..f56c70522 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/OpenDatabaseFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/OpenDatabaseFragment.java @@ -18,7 +18,6 @@ import javax.inject.Inject; import androidx.annotation.Nullable; import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.ViewModelProvider; -import androidx.lifecycle.ViewModelProviders; import static org.briarproject.briar.android.login.StartupViewModel.State; import static org.briarproject.briar.android.login.StartupViewModel.State.COMPACTING; @@ -33,12 +32,16 @@ public class OpenDatabaseFragment extends BaseFragment { @Inject ViewModelProvider.Factory viewModelFactory; + private StartupViewModel viewModel; + private TextView textView; private ImageView imageView; @Override public void injectFragment(ActivityComponent component) { component.inject(this); + viewModel = new ViewModelProvider(requireActivity(), + viewModelFactory).get(StartupViewModel.class); } @Override @@ -47,11 +50,10 @@ public class OpenDatabaseFragment extends BaseFragment { @Nullable Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_open_database, container, false); + textView = v.findViewById(R.id.textView); imageView = v.findViewById(R.id.imageView); - StartupViewModel viewModel = ViewModelProviders.of(requireActivity(), - viewModelFactory).get(StartupViewModel.class); LifecycleOwner owner = getViewLifecycleOwner(); viewModel.getState().observe(owner, this::onStateChanged); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordFragment.java index d7cb83930..c0ea14cb5 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordFragment.java @@ -25,7 +25,6 @@ import javax.inject.Inject; import androidx.appcompat.app.AlertDialog; import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.ViewModelProvider; -import androidx.lifecycle.ViewModelProviders; import static android.view.View.INVISIBLE; import static android.view.View.VISIBLE; @@ -56,6 +55,8 @@ public class PasswordFragment extends BaseFragment implements TextWatcher { @Override public void injectFragment(ActivityComponent component) { component.inject(this); + viewModel = new ViewModelProvider(requireActivity(), viewModelFactory) + .get(StartupViewModel.class); } @Override @@ -65,9 +66,6 @@ public class PasswordFragment extends BaseFragment implements TextWatcher { View v = inflater.inflate(R.layout.fragment_password, container, false); - viewModel = ViewModelProviders.of(requireActivity(), viewModelFactory) - .get(StartupViewModel.class); - LifecycleOwner owner = getViewLifecycleOwner(); viewModel.getPasswordValidated().observeEvent(owner, result -> { if (result != SUCCESS) onPasswordInvalid(result); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/StartupActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/login/StartupActivity.java index faf469c28..c65a06cc7 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/StartupActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/StartupActivity.java @@ -17,7 +17,6 @@ import javax.inject.Inject; import androidx.annotation.Nullable; import androidx.lifecycle.ViewModelProvider; -import androidx.lifecycle.ViewModelProviders; import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK; import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP; @@ -41,6 +40,8 @@ public class StartupActivity extends BaseActivity implements @Override public void injectActivity(ActivityComponent component) { component.inject(this); + viewModel = new ViewModelProvider(this, viewModelFactory) + .get(StartupViewModel.class); } @Override @@ -51,8 +52,6 @@ public class StartupActivity extends BaseActivity implements setContentView(R.layout.activity_fragment_container); - viewModel = ViewModelProviders.of(this, viewModelFactory) - .get(StartupViewModel.class); if (!viewModel.accountExists()) { // TODO ideally we would not have to delete the account again // The account needs to deleted again to remove the database folder, diff --git a/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java index d9865871d..e205d449b 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java @@ -58,7 +58,6 @@ import androidx.drawerlayout.widget.DrawerLayout; import androidx.fragment.app.FragmentManager; import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModelProvider; -import androidx.lifecycle.ViewModelProviders; import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat; import uk.co.samuelwall.materialtaptargetprompt.MaterialTapTargetPrompt; @@ -122,6 +121,10 @@ public class NavDrawerActivity extends BriarActivity implements @Override public void injectActivity(ActivityComponent component) { component.inject(this); + ViewModelProvider provider = + new ViewModelProvider(this, viewModelFactory); + navDrawerViewModel = provider.get(NavDrawerViewModel.class); + pluginViewModel = provider.get(PluginViewModel.class); } @Override @@ -130,11 +133,6 @@ public class NavDrawerActivity extends BriarActivity implements exitIfStartupFailed(getIntent()); setContentView(R.layout.activity_nav_drawer); - ViewModelProvider provider = - ViewModelProviders.of(this, viewModelFactory); - navDrawerViewModel = provider.get(NavDrawerViewModel.class); - pluginViewModel = provider.get(PluginViewModel.class); - BriarApplication app = (BriarApplication) getApplication(); if (IS_DEBUG_BUILD && !app.isInstrumentationTest()) { navDrawerViewModel.showExpiryWarning() diff --git a/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/TransportsActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/TransportsActivity.java index d86c9fea5..d79b500d8 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/TransportsActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/TransportsActivity.java @@ -37,7 +37,6 @@ import androidx.appcompat.app.ActionBar; import androidx.appcompat.widget.SwitchCompat; import androidx.core.content.ContextCompat; import androidx.lifecycle.ViewModelProvider; -import androidx.lifecycle.ViewModelProviders; import static android.view.View.GONE; import static android.view.View.VISIBLE; @@ -62,6 +61,13 @@ public class TransportsActivity extends BriarActivity { private PluginViewModel viewModel; private BaseAdapter transportsAdapter; + @Override + public void injectActivity(ActivityComponent component) { + component.inject(this); + viewModel = new ViewModelProvider(this, viewModelFactory) + .get(PluginViewModel.class); + } + @Override public void onCreate(@Nullable Bundle state) { super.onCreate(state); @@ -74,20 +80,11 @@ public class TransportsActivity extends BriarActivity { setContentView(R.layout.activity_transports); - ViewModelProvider provider = - ViewModelProviders.of(this, viewModelFactory); - viewModel = provider.get(PluginViewModel.class); - GridView grid = findViewById(R.id.grid); initializeCards(); grid.setAdapter(transportsAdapter); } - @Override - public void injectActivity(ActivityComponent component) { - component.inject(this); - } - @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/reporting/CrashFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/reporting/CrashFragment.java index e1d42e118..370adc927 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/reporting/CrashFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/reporting/CrashFragment.java @@ -25,16 +25,11 @@ public class CrashFragment extends BaseFragment { @Inject ViewModelProvider.Factory viewModelFactory; - @Override - public void injectFragment(ActivityComponent component) { - component.inject(this); - } - private ReportViewModel viewModel; @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); + public void injectFragment(ActivityComponent component) { + component.inject(this); viewModel = new ViewModelProvider(requireActivity(), viewModelFactory) .get(ReportViewModel.class); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/reporting/CrashReportActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/reporting/CrashReportActivity.java index 7023de94f..e07b63d53 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/reporting/CrashReportActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/reporting/CrashReportActivity.java @@ -45,6 +45,8 @@ public class CrashReportActivity extends BaseActivity @Override public void injectActivity(ActivityComponent component) { component.inject(this); + viewModel = new ViewModelProvider(this, viewModelFactory) + .get(ReportViewModel.class); } @Override @@ -52,8 +54,6 @@ public class CrashReportActivity extends BaseActivity super.onCreate(savedInstanceState); setContentView(R.layout.activity_dev_report); - viewModel = new ViewModelProvider(this, viewModelFactory) - .get(ReportViewModel.class); Intent intent = getIntent(); Throwable t = (Throwable) intent.getSerializableExtra(EXTRA_THROWABLE); long appStartTime = intent.getLongExtra(EXTRA_APP_START_TIME, -1); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/reporting/ReportFormFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/reporting/ReportFormFragment.java index d8daa024c..2efd021e8 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/reporting/ReportFormFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/reporting/ReportFormFragment.java @@ -53,14 +53,14 @@ public class ReportFormFragment extends BaseFragment { @Override public void injectFragment(ActivityComponent component) { component.inject(this); + viewModel = new ViewModelProvider(requireActivity(), viewModelFactory) + .get(ReportViewModel.class); } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); - viewModel = new ViewModelProvider(requireActivity(), viewModelFactory) - .get(ReportViewModel.class); } @Nullable diff --git a/briar-android/src/test/java/org/briarproject/briar/android/forum/ForumActivityTest.java b/briar-android/src/test/java/org/briarproject/briar/android/forum/ForumActivityTest.java deleted file mode 100644 index e69de29bb..000000000