Messaging: Convert further parts to androidx
CursorLoader, LoaderManager, Preferences, Fragments, ... Change-Id: I8787b2db365249839547c6d5c21ab7cd5ff42082
This commit is contained in:
+4
-16
@@ -18,15 +18,16 @@ package com.android.messaging.ui.conversationlist;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Fragment;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Resources;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.NonNull;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.datamodel.action.DeleteConversationAction;
|
||||
import com.android.messaging.datamodel.action.UpdateConversationArchiveStatusAction;
|
||||
@@ -48,30 +49,17 @@ import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
/**
|
||||
* Base class for many Conversation List activities. This will handle the common actions of multi
|
||||
* select and common launching of intents.
|
||||
*/
|
||||
public abstract class AbstractConversationListActivity extends BugleActionBarActivity
|
||||
public abstract class AbstractConversationListActivity extends BugleActionBarActivity
|
||||
implements ConversationListFragmentHost, MultiSelectActionModeCallback.Listener {
|
||||
|
||||
private static final int REQUEST_SET_DEFAULT_SMS_APP = 1;
|
||||
|
||||
protected ConversationListFragment mConversationListFragment;
|
||||
|
||||
@Override
|
||||
public void onAttachFragment(final Fragment fragment) {
|
||||
Trace.beginSection("AbstractConversationListActivity.onAttachFragment");
|
||||
// Fragment could be debug dialog
|
||||
if (fragment instanceof ConversationListFragment) {
|
||||
mConversationListFragment = (ConversationListFragment) fragment;
|
||||
mConversationListFragment.setHost(this);
|
||||
}
|
||||
Trace.endSection();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
// If action mode is active dismiss it
|
||||
|
||||
+17
-3
@@ -18,14 +18,18 @@ package com.android.messaging.ui.conversationlist;
|
||||
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.os.Bundle;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import android.view.MenuItem;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentOnAttachListener;
|
||||
|
||||
import com.android.messaging.R;
|
||||
|
||||
public class ArchivedConversationListActivity extends AbstractConversationListActivity {
|
||||
public class ArchivedConversationListActivity extends AbstractConversationListActivity
|
||||
implements FragmentOnAttachListener {
|
||||
|
||||
@Override
|
||||
protected void onCreate(final Bundle savedInstanceState) {
|
||||
@@ -33,7 +37,8 @@ public class ArchivedConversationListActivity extends AbstractConversationListAc
|
||||
|
||||
final ConversationListFragment fragment =
|
||||
ConversationListFragment.createArchivedConversationListFragment();
|
||||
getFragmentManager().beginTransaction().add(android.R.id.content, fragment).commit();
|
||||
getSupportFragmentManager().addFragmentOnAttachListener(this);
|
||||
getSupportFragmentManager().beginTransaction().add(android.R.id.content, fragment).commit();
|
||||
invalidateActionBar();
|
||||
}
|
||||
|
||||
@@ -77,4 +82,13 @@ public class ArchivedConversationListActivity extends AbstractConversationListAc
|
||||
public boolean isSwipeAnimatable() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttachFragment(@NonNull FragmentManager fragmentManager,
|
||||
@NonNull Fragment fragment) {
|
||||
if (fragment instanceof ConversationListFragment) {
|
||||
mConversationListFragment = (ConversationListFragment) fragment;
|
||||
mConversationListFragment.setHost(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,22 +19,26 @@ package com.android.messaging.ui.conversationlist;
|
||||
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.os.Bundle;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentOnAttachListener;
|
||||
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.ui.UIIntents;
|
||||
import com.android.messaging.util.Trace;
|
||||
|
||||
public class ConversationListActivity extends AbstractConversationListActivity {
|
||||
public class ConversationListActivity extends AbstractConversationListActivity implements FragmentOnAttachListener {
|
||||
@Override
|
||||
protected void onCreate(final Bundle savedInstanceState) {
|
||||
Trace.beginSection("ConversationListActivity.onCreate");
|
||||
setTheme(R.style.BugleTheme_ConversationListActivity);
|
||||
super.onCreate(savedInstanceState);
|
||||
getSupportFragmentManager().addFragmentOnAttachListener(this);
|
||||
setContentView(R.layout.conversation_list_activity);
|
||||
Trace.endSection();
|
||||
invalidateActionBar();
|
||||
@@ -128,7 +132,7 @@ public class ConversationListActivity extends AbstractConversationListActivity {
|
||||
public void onWindowFocusChanged(final boolean hasFocus) {
|
||||
super.onWindowFocusChanged(hasFocus);
|
||||
final ConversationListFragment conversationListFragment =
|
||||
(ConversationListFragment) getFragmentManager().findFragmentById(
|
||||
(ConversationListFragment) getSupportFragmentManager().findFragmentById(
|
||||
R.id.conversation_list_fragment);
|
||||
// When the screen is turned on, the last used activity gets resumed, but it gets
|
||||
// window focus only after the lock screen is unlocked.
|
||||
@@ -136,4 +140,13 @@ public class ConversationListActivity extends AbstractConversationListActivity {
|
||||
conversationListFragment.setScrolledToNewestConversationIfNeeded();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttachFragment(@NonNull FragmentManager fragmentManager,
|
||||
@NonNull Fragment fragment) {
|
||||
if (fragment instanceof ConversationListFragment) {
|
||||
mConversationListFragment = (ConversationListFragment) fragment;
|
||||
mConversationListFragment.setHost(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,19 +17,12 @@
|
||||
package com.android.messaging.ui.conversationlist;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Fragment;
|
||||
import android.content.Context;
|
||||
import android.database.Cursor;
|
||||
import android.graphics.Rect;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Parcelable;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.core.view.ViewGroupCompat;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
@@ -42,6 +35,14 @@ import android.view.accessibility.AccessibilityManager;
|
||||
import android.widget.AbsListView;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.core.view.ViewGroupCompat;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.loader.app.LoaderManager;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.annotation.VisibleForAnimation;
|
||||
import com.android.messaging.datamodel.DataModel;
|
||||
@@ -127,7 +128,7 @@ public class ConversationListFragment extends Fragment implements ConversationLi
|
||||
@Override
|
||||
public void onCreate(final Bundle bundle) {
|
||||
super.onCreate(bundle);
|
||||
mListBinding.getData().init(getLoaderManager(), mListBinding);
|
||||
mListBinding.getData().init(LoaderManager.getInstance(this), mListBinding);
|
||||
mAdapter = new ConversationListAdapter(getActivity(), null, this);
|
||||
}
|
||||
|
||||
@@ -244,8 +245,8 @@ public class ConversationListFragment extends Fragment implements ConversationLi
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(final Activity activity) {
|
||||
super.onAttach(activity);
|
||||
public void onAttach(@NonNull final Context context) {
|
||||
super.onAttach(context);
|
||||
if (VERBOSE) {
|
||||
LogUtil.v(LogUtil.BUGLE_TAG, "Attaching List");
|
||||
}
|
||||
@@ -254,12 +255,12 @@ public class ConversationListFragment extends Fragment implements ConversationLi
|
||||
mArchiveMode = arguments.getBoolean(BUNDLE_ARCHIVED_MODE, false);
|
||||
mForwardMessageMode = arguments.getBoolean(BUNDLE_FORWARD_MESSAGE_MODE, false);
|
||||
}
|
||||
mListBinding.bind(DataModel.get().createConversationListData(activity, this, mArchiveMode));
|
||||
mListBinding.bind(DataModel.get().createConversationListData(context, this, mArchiveMode));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onSaveInstanceState(final Bundle outState) {
|
||||
public void onSaveInstanceState(@NonNull final Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
if (mListState != null) {
|
||||
outState.putParcelable(SAVED_INSTANCE_STATE_LIST_VIEW_STATE_KEY, mListState);
|
||||
@@ -305,7 +306,7 @@ public class ConversationListFragment extends Fragment implements ConversationLi
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPrepareOptionsMenu(final Menu menu) {
|
||||
public void onPrepareOptionsMenu(@NonNull final Menu menu) {
|
||||
super.onPrepareOptionsMenu(menu);
|
||||
final MenuItem startNewConversationMenuItem =
|
||||
menu.findItem(R.id.action_start_new_conversation);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright (C) 2015 The Android Open Source Project
|
||||
* Copyright (C) 2024 The LineageOS Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -16,36 +17,41 @@
|
||||
|
||||
package com.android.messaging.ui.conversationlist;
|
||||
|
||||
import android.app.Fragment;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentOnAttachListener;
|
||||
|
||||
import com.android.messaging.datamodel.data.ConversationListData;
|
||||
import com.android.messaging.datamodel.data.ConversationListItemData;
|
||||
import com.android.messaging.datamodel.data.MessageData;
|
||||
import com.android.messaging.ui.BaseBugleActivity;
|
||||
import com.android.messaging.ui.UIIntents;
|
||||
import com.android.messaging.ui.conversationlist.ConversationListFragment.ConversationListFragmentHost;
|
||||
import com.android.messaging.util.Assert;
|
||||
|
||||
/**
|
||||
* An activity that lets the user forward a SMS/MMS message by picking from a conversation in the
|
||||
* conversation list.
|
||||
*/
|
||||
public class ForwardMessageActivity extends BaseBugleActivity
|
||||
implements ConversationListFragmentHost {
|
||||
implements ConversationListFragmentHost, FragmentOnAttachListener {
|
||||
private MessageData mDraftMessage;
|
||||
|
||||
@Override
|
||||
protected void onCreate(final Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
getSupportFragmentManager().addFragmentOnAttachListener(this);
|
||||
final ConversationListFragment fragment =
|
||||
ConversationListFragment.createForwardMessageConversationListFragment();
|
||||
getFragmentManager().beginTransaction().add(android.R.id.content, fragment).commit();
|
||||
getSupportFragmentManager().beginTransaction().add(android.R.id.content, fragment).commit();
|
||||
mDraftMessage = getIntent().getParcelableExtra(UIIntents.UI_INTENT_EXTRA_DRAFT_DATA);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttachFragment(final Fragment fragment) {
|
||||
public void onAttachFragment(@NonNull FragmentManager fragmentManager,
|
||||
@NonNull Fragment fragment) {
|
||||
if (fragment instanceof ConversationListFragment) {
|
||||
final ConversationListFragment clf = (ConversationListFragment) fragment;
|
||||
clf.setHost(this);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright (C) 2015 The Android Open Source Project
|
||||
* Copyright (C) 2024 The LineageOS Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -16,7 +17,6 @@
|
||||
|
||||
package com.android.messaging.ui.conversationlist;
|
||||
|
||||
import android.app.Fragment;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Intent;
|
||||
import android.media.MediaMetadataRetriever;
|
||||
@@ -24,7 +24,11 @@ import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.collection.ArrayMap;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentOnAttachListener;
|
||||
|
||||
import com.android.messaging.Factory;
|
||||
import com.android.messaging.datamodel.data.ConversationListItemData;
|
||||
@@ -48,7 +52,7 @@ import java.util.ArrayList;
|
||||
import java.util.Map;
|
||||
|
||||
public class ShareIntentActivity extends BaseBugleActivity implements
|
||||
ShareIntentFragment.HostInterface {
|
||||
ShareIntentFragment.HostInterface, FragmentOnAttachListener {
|
||||
|
||||
private MessageData mDraftMessage;
|
||||
|
||||
@@ -74,11 +78,13 @@ public class ShareIntentActivity extends BaseBugleActivity implements
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
new ShareIntentFragment().show(getFragmentManager(), "ShareIntentFragment");
|
||||
getSupportFragmentManager().addFragmentOnAttachListener(this);
|
||||
new ShareIntentFragment().show(getSupportFragmentManager(), "ShareIntentFragment");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttachFragment(final Fragment fragment) {
|
||||
public void onAttachFragment(@NonNull FragmentManager fragmentManager,
|
||||
@NonNull Fragment fragment) {
|
||||
final Intent intent = getIntent();
|
||||
final String action = intent.getAction();
|
||||
|
||||
|
||||
@@ -20,10 +20,14 @@ import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.AlertDialog.Builder;
|
||||
import android.app.Dialog;
|
||||
import android.app.DialogFragment;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.database.Cursor;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
import androidx.loader.app.LoaderManager;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
@@ -61,6 +65,7 @@ public class ShareIntentFragment extends DialogFragment implements ConversationL
|
||||
/**
|
||||
* {@inheritDoc} from Fragment
|
||||
*/
|
||||
@NonNull
|
||||
@Override
|
||||
public Dialog onCreateDialog(final Bundle bundle) {
|
||||
final Activity activity = getActivity();
|
||||
@@ -79,7 +84,7 @@ public class ShareIntentFragment extends DialogFragment implements ConversationL
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||
}
|
||||
};
|
||||
mListBinding.getData().init(getLoaderManager(), mListBinding);
|
||||
mListBinding.getData().init(LoaderManager.getInstance(this), mListBinding);
|
||||
mAdapter = new ShareIntentAdapter(activity, null, this);
|
||||
mRecyclerView = (RecyclerView) view.findViewById(android.R.id.list);
|
||||
mRecyclerView.setLayoutManager(manager);
|
||||
@@ -101,7 +106,7 @@ public class ShareIntentFragment extends DialogFragment implements ConversationL
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDismiss(DialogInterface dialog) {
|
||||
public void onDismiss(@NonNull DialogInterface dialog) {
|
||||
if (!mDismissed) {
|
||||
final Activity activity = getActivity();
|
||||
if (activity != null) {
|
||||
@@ -120,12 +125,12 @@ public class ShareIntentFragment extends DialogFragment implements ConversationL
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(final Activity activity) {
|
||||
super.onAttach(activity);
|
||||
if (activity instanceof HostInterface) {
|
||||
mHost = (HostInterface) activity;
|
||||
public void onAttach(@NonNull final Context context) {
|
||||
super.onAttach(context);
|
||||
if (context instanceof HostInterface) {
|
||||
mHost = (HostInterface) context;
|
||||
}
|
||||
mListBinding.bind(DataModel.get().createConversationListData(activity, this, false));
|
||||
mListBinding.bind(DataModel.get().createConversationListData(context, this, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user