Messaging: Convert further parts to androidx
CursorLoader, LoaderManager, Preferences, Fragments, ... Change-Id: I8787b2db365249839547c6d5c21ab7cd5ff42082
This commit is contained in:
@@ -68,6 +68,7 @@ android_app {
|
||||
"androidx.legacy_legacy-support-core-utils",
|
||||
"androidx.legacy_legacy-support-core-ui",
|
||||
"androidx.palette_palette",
|
||||
"androidx.preference_preference",
|
||||
"androidx.recyclerview_recyclerview",
|
||||
"androidx.viewpager_viewpager",
|
||||
"androidx.legacy_legacy-support-v13",
|
||||
|
||||
@@ -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.
|
||||
@@ -17,9 +18,10 @@
|
||||
package com.android.messaging.datamodel;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.CursorLoader;
|
||||
import android.net.Uri;
|
||||
|
||||
import androidx.loader.content.CursorLoader;
|
||||
|
||||
/**
|
||||
* Extension to basic cursor loader that has an attached binding id
|
||||
*/
|
||||
@@ -38,7 +40,6 @@ public class BoundCursorLoader extends CursorLoader {
|
||||
|
||||
/**
|
||||
* Binding id associated with this loader - consume can check to verify data still valid
|
||||
* @return
|
||||
*/
|
||||
public String getBindingId() {
|
||||
return mBindingId;
|
||||
|
||||
@@ -17,13 +17,15 @@
|
||||
|
||||
package com.android.messaging.datamodel.data;
|
||||
|
||||
import android.app.LoaderManager;
|
||||
import android.content.Context;
|
||||
import android.content.Loader;
|
||||
import android.database.Cursor;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.loader.app.LoaderManager;
|
||||
import androidx.loader.content.Loader;
|
||||
|
||||
import com.android.messaging.datamodel.BoundCursorLoader;
|
||||
import com.android.messaging.datamodel.DatabaseHelper.ParticipantColumns;
|
||||
import com.android.messaging.datamodel.MessagingContentProvider;
|
||||
@@ -51,6 +53,7 @@ public class BlockedParticipantsData extends BindableData implements
|
||||
mListener = listener;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
||||
Assert.isTrue(id == BLOCKED_PARTICIPANTS_LOADER);
|
||||
|
||||
@@ -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,12 +17,14 @@
|
||||
|
||||
package com.android.messaging.datamodel.data;
|
||||
|
||||
import android.app.LoaderManager;
|
||||
import android.content.Context;
|
||||
import android.content.Loader;
|
||||
import android.database.Cursor;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.loader.app.LoaderManager;
|
||||
import androidx.loader.content.Loader;
|
||||
|
||||
import com.android.messaging.datamodel.BoundCursorLoader;
|
||||
import com.android.messaging.datamodel.FrequentContactsCursorBuilder;
|
||||
import com.android.messaging.datamodel.MessagingContentProvider;
|
||||
@@ -61,6 +64,7 @@ public class ContactPickerData extends BindableData implements
|
||||
private static final int FREQUENT_CONTACTS_LOADER = 2;
|
||||
private static final int PARTICIPANT_LOADER = 3;
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
||||
final String bindingId = args.getString(BINDING_ID);
|
||||
@@ -91,7 +95,7 @@ public class ContactPickerData extends BindableData implements
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onLoadFinished(final Loader<Cursor> loader, final Cursor data) {
|
||||
public void onLoadFinished(@NonNull final Loader<Cursor> loader, final Cursor data) {
|
||||
final BoundCursorLoader cursorLoader = (BoundCursorLoader) loader;
|
||||
if (isBound(cursorLoader.getBindingId())) {
|
||||
switch (loader.getId()) {
|
||||
|
||||
@@ -17,17 +17,19 @@
|
||||
|
||||
package com.android.messaging.datamodel.data;
|
||||
|
||||
import android.app.LoaderManager;
|
||||
import android.content.Context;
|
||||
import android.content.Loader;
|
||||
import android.database.Cursor;
|
||||
import android.database.CursorWrapper;
|
||||
import android.database.sqlite.SQLiteFullException;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import androidx.annotation.Nullable;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.loader.app.LoaderManager;
|
||||
import androidx.loader.content.Loader;
|
||||
|
||||
import com.android.common.contacts.DataUsageStatUpdater;
|
||||
import com.android.messaging.Factory;
|
||||
import com.android.messaging.R;
|
||||
@@ -180,6 +182,7 @@ public class ConversationData extends BindableData {
|
||||
* A trampoline class so that we can inherit from LoaderManager.LoaderCallbacks multiple times.
|
||||
*/
|
||||
private class MetadataLoaderCallbacks implements LoaderManager.LoaderCallbacks<Cursor> {
|
||||
@NonNull
|
||||
@Override
|
||||
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
||||
Assert.equals(CONVERSATION_META_DATA_LOADER, id);
|
||||
@@ -200,7 +203,7 @@ public class ConversationData extends BindableData {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadFinished(final Loader<Cursor> generic, final Cursor data) {
|
||||
public void onLoadFinished(@NonNull final Loader<Cursor> generic, final Cursor data) {
|
||||
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
||||
|
||||
// Check if data still bound to the requesting ui element
|
||||
@@ -227,7 +230,7 @@ public class ConversationData extends BindableData {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoaderReset(final Loader<Cursor> generic) {
|
||||
public void onLoaderReset(@NonNull final Loader<Cursor> generic) {
|
||||
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
||||
|
||||
// Check if data still bound to the requesting ui element
|
||||
@@ -246,6 +249,7 @@ public class ConversationData extends BindableData {
|
||||
* A trampoline class so that we can inherit from LoaderManager.LoaderCallbacks multiple times.
|
||||
*/
|
||||
private class MessagesLoaderCallbacks implements LoaderManager.LoaderCallbacks<Cursor> {
|
||||
@NonNull
|
||||
@Override
|
||||
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
||||
Assert.equals(CONVERSATION_MESSAGES_LOADER, id);
|
||||
@@ -268,7 +272,7 @@ public class ConversationData extends BindableData {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadFinished(final Loader<Cursor> generic, final Cursor rawData) {
|
||||
public void onLoadFinished(@NonNull final Loader<Cursor> generic, final Cursor rawData) {
|
||||
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
||||
|
||||
// Check if data still bound to the requesting ui element
|
||||
@@ -316,7 +320,7 @@ public class ConversationData extends BindableData {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoaderReset(final Loader<Cursor> generic) {
|
||||
public void onLoaderReset(@NonNull final Loader<Cursor> generic) {
|
||||
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
||||
|
||||
// Check if data still bound to the requesting ui element
|
||||
@@ -349,6 +353,7 @@ public class ConversationData extends BindableData {
|
||||
* A trampoline class so that we can inherit from LoaderManager.LoaderCallbacks multiple times.
|
||||
*/
|
||||
private class ParticipantLoaderCallbacks implements LoaderManager.LoaderCallbacks<Cursor> {
|
||||
@NonNull
|
||||
@Override
|
||||
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
||||
Assert.equals(PARTICIPANT_LOADER, id);
|
||||
@@ -369,7 +374,7 @@ public class ConversationData extends BindableData {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadFinished(final Loader<Cursor> generic, final Cursor data) {
|
||||
public void onLoadFinished(@NonNull final Loader<Cursor> generic, final Cursor data) {
|
||||
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
||||
|
||||
// Check if data still bound to the requesting ui element
|
||||
@@ -383,7 +388,7 @@ public class ConversationData extends BindableData {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoaderReset(final Loader<Cursor> generic) {
|
||||
public void onLoaderReset(@NonNull final Loader<Cursor> generic) {
|
||||
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
||||
|
||||
// Check if data still bound to the requesting ui element
|
||||
@@ -400,6 +405,7 @@ public class ConversationData extends BindableData {
|
||||
* A trampoline class so that we can inherit from LoaderManager.LoaderCallbacks multiple times.
|
||||
*/
|
||||
private class SelfParticipantLoaderCallbacks implements LoaderManager.LoaderCallbacks<Cursor> {
|
||||
@NonNull
|
||||
@Override
|
||||
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
||||
Assert.equals(SELF_PARTICIPANT_LOADER, id);
|
||||
@@ -422,7 +428,7 @@ public class ConversationData extends BindableData {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadFinished(final Loader<Cursor> generic, final Cursor data) {
|
||||
public void onLoadFinished(@NonNull final Loader<Cursor> generic, final Cursor data) {
|
||||
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
||||
|
||||
// Check if data still bound to the requesting ui element
|
||||
@@ -437,7 +443,7 @@ public class ConversationData extends BindableData {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoaderReset(final Loader<Cursor> generic) {
|
||||
public void onLoaderReset(@NonNull final Loader<Cursor> generic) {
|
||||
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
||||
|
||||
// Check if data still bound to the requesting ui element
|
||||
|
||||
@@ -17,12 +17,14 @@
|
||||
|
||||
package com.android.messaging.datamodel.data;
|
||||
|
||||
import android.app.LoaderManager;
|
||||
import android.content.Context;
|
||||
import android.content.Loader;
|
||||
import android.database.Cursor;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.loader.app.LoaderManager;
|
||||
import androidx.loader.content.Loader;
|
||||
|
||||
import com.android.messaging.datamodel.BoundCursorLoader;
|
||||
import com.android.messaging.datamodel.BugleNotifications;
|
||||
import com.android.messaging.datamodel.DataModel;
|
||||
@@ -81,6 +83,7 @@ public class ConversationListData extends BindableData
|
||||
// all blocked participants
|
||||
private final HashSet<String> mBlockedParticipants = new HashSet<String>();
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
||||
final String bindingId = args.getString(BINDING_ID);
|
||||
@@ -116,7 +119,7 @@ public class ConversationListData extends BindableData
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onLoadFinished(final Loader<Cursor> generic, final Cursor data) {
|
||||
public void onLoadFinished(@NonNull final Loader<Cursor> generic, final Cursor data) {
|
||||
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
||||
if (isBound(loader.getBindingId())) {
|
||||
switch (loader.getId()) {
|
||||
@@ -145,7 +148,7 @@ public class ConversationListData extends BindableData
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onLoaderReset(final Loader<Cursor> generic) {
|
||||
public void onLoaderReset(@NonNull final Loader<Cursor> generic) {
|
||||
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
||||
if (isBound(loader.getBindingId())) {
|
||||
switch (loader.getId()) {
|
||||
|
||||
@@ -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,12 +17,14 @@
|
||||
|
||||
package com.android.messaging.datamodel.data;
|
||||
|
||||
import android.app.LoaderManager;
|
||||
import android.content.Context;
|
||||
import android.content.Loader;
|
||||
import android.database.Cursor;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.loader.app.LoaderManager;
|
||||
import androidx.loader.content.Loader;
|
||||
|
||||
import com.android.messaging.datamodel.BoundCursorLoader;
|
||||
import com.android.messaging.datamodel.GalleryBoundCursorLoader;
|
||||
@@ -57,6 +60,7 @@ public class MediaPickerData extends BindableData {
|
||||
* A trampoline class so that we can inherit from LoaderManager.LoaderCallbacks multiple times.
|
||||
*/
|
||||
private class GalleryLoaderCallbacks implements LoaderManager.LoaderCallbacks<Cursor> {
|
||||
@NonNull
|
||||
@Override
|
||||
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
||||
final String bindingId = args.getString(BINDING_ID);
|
||||
@@ -80,7 +84,7 @@ public class MediaPickerData extends BindableData {
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onLoadFinished(final Loader<Cursor> loader, final Cursor data) {
|
||||
public void onLoadFinished(@NonNull final Loader<Cursor> loader, final Cursor data) {
|
||||
final BoundCursorLoader cursorLoader = (BoundCursorLoader) loader;
|
||||
if (isBound(cursorLoader.getBindingId())) {
|
||||
switch (loader.getId()) {
|
||||
@@ -102,7 +106,7 @@ public class MediaPickerData extends BindableData {
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onLoaderReset(final Loader<Cursor> loader) {
|
||||
public void onLoaderReset(@NonNull final Loader<Cursor> loader) {
|
||||
final BoundCursorLoader cursorLoader = (BoundCursorLoader) loader;
|
||||
if (isBound(cursorLoader.getBindingId())) {
|
||||
switch (loader.getId()) {
|
||||
|
||||
@@ -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,13 +17,15 @@
|
||||
|
||||
package com.android.messaging.datamodel.data;
|
||||
|
||||
import android.app.LoaderManager;
|
||||
import android.content.Context;
|
||||
import android.content.Loader;
|
||||
import android.database.Cursor;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.loader.app.LoaderManager;
|
||||
import androidx.loader.content.Loader;
|
||||
|
||||
import com.android.messaging.datamodel.BoundCursorLoader;
|
||||
import com.android.messaging.datamodel.MessagingContentProvider;
|
||||
import com.android.messaging.datamodel.action.BugleActionToasts;
|
||||
@@ -63,6 +66,7 @@ public class PeopleAndOptionsData extends BindableData implements
|
||||
private static final int CONVERSATION_OPTIONS_LOADER = 1;
|
||||
private static final int PARTICIPANT_LOADER = 2;
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
||||
final String bindingId = args.getString(BINDING_ID);
|
||||
@@ -98,7 +102,7 @@ public class PeopleAndOptionsData extends BindableData implements
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onLoadFinished(final Loader<Cursor> loader, final Cursor data) {
|
||||
public void onLoadFinished(@NonNull final Loader<Cursor> loader, final Cursor data) {
|
||||
final BoundCursorLoader cursorLoader = (BoundCursorLoader) loader;
|
||||
if (isBound(cursorLoader.getBindingId())) {
|
||||
switch (loader.getId()) {
|
||||
@@ -126,7 +130,7 @@ public class PeopleAndOptionsData extends BindableData implements
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
@Override
|
||||
public void onLoaderReset(final Loader<Cursor> loader) {
|
||||
public void onLoaderReset(@NonNull final Loader<Cursor> loader) {
|
||||
final BoundCursorLoader cursorLoader = (BoundCursorLoader) loader;
|
||||
if (isBound(cursorLoader.getBindingId())) {
|
||||
switch (loader.getId()) {
|
||||
|
||||
@@ -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,13 +17,15 @@
|
||||
|
||||
package com.android.messaging.datamodel.data;
|
||||
|
||||
import android.app.LoaderManager;
|
||||
import android.content.Context;
|
||||
import android.content.Loader;
|
||||
import android.database.Cursor;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.loader.app.LoaderManager;
|
||||
import androidx.loader.content.Loader;
|
||||
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.datamodel.BoundCursorLoader;
|
||||
import com.android.messaging.datamodel.DatabaseHelper.ParticipantColumns;
|
||||
@@ -126,6 +129,7 @@ public class SettingsData extends BindableData implements
|
||||
|
||||
private static final int SELF_PARTICIPANT_LOADER = 1;
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
||||
Assert.equals(SELF_PARTICIPANT_LOADER, id);
|
||||
@@ -147,7 +151,7 @@ public class SettingsData extends BindableData implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadFinished(final Loader<Cursor> generic, final Cursor data) {
|
||||
public void onLoadFinished(@NonNull final Loader<Cursor> generic, final Cursor data) {
|
||||
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
||||
|
||||
// Check if data still bound to the requesting ui element
|
||||
|
||||
@@ -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,9 +17,10 @@
|
||||
|
||||
package com.android.messaging.ui;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
|
||||
import com.android.messaging.util.BugleActivityUtil;
|
||||
import com.android.messaging.util.LogUtil;
|
||||
import com.android.messaging.util.UiUtils;
|
||||
@@ -27,7 +29,7 @@ import com.android.messaging.util.UiUtils;
|
||||
* Base class for app activities that would normally derive from Activity. Responsible for
|
||||
* ensuring app requirements are met during onResume()
|
||||
*/
|
||||
public class BaseBugleActivity extends Activity {
|
||||
public class BaseBugleActivity extends FragmentActivity {
|
||||
@Override
|
||||
protected void onCreate(final Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
@@ -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,7 @@
|
||||
|
||||
package com.android.messaging.ui;
|
||||
|
||||
import android.app.Activity;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
|
||||
import com.android.messaging.util.BugleActivityUtil;
|
||||
import com.android.messaging.util.LogUtil;
|
||||
@@ -25,7 +26,7 @@ import com.android.messaging.util.LogUtil;
|
||||
* Base class for app activities that would normally derive from FragmentActivity. Responsible for
|
||||
* ensuring app requirements are met during onResume()
|
||||
*/
|
||||
public class BaseBugleFragmentActivity extends Activity {
|
||||
public class BaseBugleFragmentActivity extends FragmentActivity {
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
|
||||
@@ -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.
|
||||
@@ -15,17 +16,19 @@
|
||||
*/
|
||||
package com.android.messaging.ui;
|
||||
|
||||
import android.app.Fragment;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.database.Cursor;
|
||||
import android.os.Bundle;
|
||||
import androidx.cursoradapter.widget.CursorAdapter;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ListView;
|
||||
|
||||
import androidx.cursoradapter.widget.CursorAdapter;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.loader.app.LoaderManager;
|
||||
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.datamodel.binding.Binding;
|
||||
import com.android.messaging.datamodel.binding.BindingBase;
|
||||
@@ -58,7 +61,7 @@ public class BlockedParticipantsFragment extends Fragment
|
||||
mAdapter = new BlockedParticipantListAdapter(getActivity(), null);
|
||||
mListView.setAdapter(mAdapter);
|
||||
mBinding.bind(DataModel.get().createBlockedParticipantsData(getActivity(), this));
|
||||
mBinding.getData().init(getLoaderManager(), mBinding);
|
||||
mBinding.getData().init(LoaderManager.getInstance(this), mBinding);
|
||||
return view;
|
||||
}
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ import android.os.Handler;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import android.util.Log;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.FilterQueryProvider;
|
||||
@@ -85,7 +86,8 @@ public abstract class CursorRecyclerAdapter<VH extends RecyclerView.ViewHolder>
|
||||
* @deprecated This option is discouraged, as it results in Cursor queries
|
||||
* being performed on the application's UI thread and thus can cause poor
|
||||
* responsiveness or even Application Not Responding errors. As an alternative,
|
||||
* use {@link android.app.LoaderManager} with a {@link android.content.CursorLoader}.
|
||||
* use {@link androidx.loader.app.LoaderManager} with a
|
||||
* {@link androidx.loader.content.CursorLoader}.
|
||||
*/
|
||||
@Deprecated
|
||||
public static final int FLAG_AUTO_REQUERY = 0x01;
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package com.android.messaging.ui;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.viewpager.widget.PagerAdapter;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
import androidx.viewpager.widget.ViewPager.OnPageChangeListener;
|
||||
@@ -66,7 +67,7 @@ public class CustomHeaderViewPager extends LinearLayout {
|
||||
final PagerAdapter adapter = new CustomHeaderViewPagerAdapter(viewHolders);
|
||||
mViewPager.setAdapter(adapter);
|
||||
mTabstrip.setViewPager(mViewPager);
|
||||
mViewPager.setOnPageChangeListener(new OnPageChangeListener() {
|
||||
mViewPager.addOnPageChangeListener(new OnPageChangeListener() {
|
||||
|
||||
@Override
|
||||
public void onPageScrollStateChanged(int state) {
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
package com.android.messaging.ui;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Fragment;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.ContentValues;
|
||||
import android.content.Context;
|
||||
@@ -27,6 +26,8 @@ import android.graphics.Rect;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.android.messaging.Factory;
|
||||
import com.android.messaging.datamodel.data.MessageData;
|
||||
import com.android.messaging.util.ConversationIdSet;
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
package com.android.messaging.ui;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Fragment;
|
||||
import android.app.PendingIntent;
|
||||
import android.app.role.RoleManager;
|
||||
import android.appwidget.AppWidgetManager;
|
||||
@@ -36,6 +35,7 @@ import android.provider.MediaStore;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.app.TaskStackBuilder;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
import android.text.TextUtils;
|
||||
|
||||
|
||||
@@ -16,12 +16,14 @@
|
||||
*/
|
||||
package com.android.messaging.ui;
|
||||
|
||||
import android.app.Fragment;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentOnAttachListener;
|
||||
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.util.Assert;
|
||||
@@ -30,16 +32,19 @@ import com.android.messaging.util.Assert;
|
||||
* An activity that hosts VCardDetailFragment that shows the content of a VCard that contains one
|
||||
* or more contacts.
|
||||
*/
|
||||
public class VCardDetailActivity extends BugleActionBarActivity {
|
||||
public class VCardDetailActivity extends BugleActionBarActivity
|
||||
implements FragmentOnAttachListener {
|
||||
@Override
|
||||
protected void onCreate(final Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
getSupportFragmentManager().addFragmentOnAttachListener(this);
|
||||
setContentView(R.layout.vcard_detail_activity);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttachFragment(final Fragment fragment) {
|
||||
public void onAttachFragment(@NonNull FragmentManager fragmentManager,
|
||||
@NonNull final Fragment fragment) {
|
||||
if (fragment instanceof VCardDetailFragment) {
|
||||
final Uri vCardUri =
|
||||
getIntent().getParcelableExtra(UIIntents.UI_INTENT_EXTRA_VCARD_URI);
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
*/
|
||||
package com.android.messaging.ui;
|
||||
|
||||
import android.app.Fragment;
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
@@ -30,6 +29,9 @@ import android.view.ViewGroup;
|
||||
import android.widget.ExpandableListAdapter;
|
||||
import android.widget.ExpandableListView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.datamodel.DataModel;
|
||||
import com.android.messaging.datamodel.MediaScratchFileProvider;
|
||||
@@ -113,7 +115,8 @@ public class VCardDetailFragment extends Fragment implements PersonItemDataListe
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) {
|
||||
public void onCreateOptionsMenu(@NonNull final Menu menu,
|
||||
@NonNull final MenuInflater inflater) {
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
inflater.inflate(R.menu.vcard_detail_fragment_menu, menu);
|
||||
final MenuItem addToContactsItem = menu.findItem(R.id.action_add_contact);
|
||||
|
||||
@@ -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,11 +17,15 @@
|
||||
|
||||
package com.android.messaging.ui;
|
||||
|
||||
import android.app.Fragment;
|
||||
import android.appwidget.AppWidgetManager;
|
||||
import android.content.Intent;
|
||||
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.Factory;
|
||||
import com.android.messaging.datamodel.data.ConversationListItemData;
|
||||
import com.android.messaging.ui.conversationlist.ShareIntentFragment;
|
||||
@@ -29,7 +34,7 @@ import com.android.messaging.util.BuglePrefs;
|
||||
import com.android.messaging.widget.WidgetConversationProvider;
|
||||
|
||||
public class WidgetPickConversationActivity extends BaseBugleActivity implements
|
||||
ShareIntentFragment.HostInterface {
|
||||
ShareIntentFragment.HostInterface, FragmentOnAttachListener {
|
||||
|
||||
private int mAppWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID;
|
||||
|
||||
@@ -37,7 +42,6 @@ public class WidgetPickConversationActivity extends BaseBugleActivity implements
|
||||
protected void onCreate(final Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
|
||||
// Set the result to CANCELED. This will cause the widget host to cancel
|
||||
// out of the widget placement if they press the back button.
|
||||
setResult(RESULT_CANCELED);
|
||||
@@ -55,15 +59,18 @@ public class WidgetPickConversationActivity extends BaseBugleActivity implements
|
||||
finish();
|
||||
}
|
||||
|
||||
getSupportFragmentManager().addFragmentOnAttachListener(this);
|
||||
|
||||
final ShareIntentFragment convPicker = new ShareIntentFragment();
|
||||
final Bundle bundle = new Bundle();
|
||||
bundle.putBoolean(ShareIntentFragment.HIDE_NEW_CONVERSATION_BUTTON_KEY, true);
|
||||
convPicker.setArguments(bundle);
|
||||
convPicker.show(getFragmentManager(), "ShareIntentFragment");
|
||||
convPicker.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();
|
||||
if (!AppWidgetManager.ACTION_APPWIDGET_CONFIGURE.equals(action)) {
|
||||
@@ -110,5 +117,4 @@ public class WidgetPickConversationActivity extends BaseBugleActivity implements
|
||||
final BuglePrefs prefs = Factory.get().getWidgetPrefs();
|
||||
prefs.remove(UIIntents.UI_INTENT_EXTRA_CONVERSATION_ID + appWidgetId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -17,22 +17,21 @@
|
||||
|
||||
package com.android.messaging.ui.appsettings;
|
||||
|
||||
import android.app.FragmentTransaction;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceFragment;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.preference.SwitchPreference;
|
||||
import android.provider.Settings;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.app.NavUtils;
|
||||
import android.text.TextUtils;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.app.NavUtils;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
import androidx.preference.SwitchPreference;
|
||||
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.ui.BugleActionBarActivity;
|
||||
import com.android.messaging.ui.LicenseActivity;
|
||||
@@ -52,7 +51,7 @@ public class ApplicationSettingsActivity extends BugleActionBarActivity {
|
||||
getSupportActionBar().setTitle(getString(R.string.settings_activity_title));
|
||||
}
|
||||
|
||||
FragmentTransaction ft = getFragmentManager().beginTransaction();
|
||||
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
|
||||
ft.replace(android.R.id.content, new ApplicationSettingsFragment());
|
||||
ft.commit();
|
||||
}
|
||||
@@ -80,7 +79,7 @@ public class ApplicationSettingsActivity extends BugleActionBarActivity {
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
public static class ApplicationSettingsFragment extends PreferenceFragment {
|
||||
public static class ApplicationSettingsFragment extends PreferenceFragmentCompat {
|
||||
|
||||
private String mNotificationsPreferenceKey;
|
||||
private Preference mNotificationsPreference;
|
||||
@@ -97,9 +96,8 @@ public class ApplicationSettingsActivity extends BugleActionBarActivity {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(final Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
public void onCreatePreferences(@Nullable Bundle savedInstanceState,
|
||||
@Nullable String rootKey) {
|
||||
getPreferenceManager().setSharedPreferencesName(BuglePrefs.SHARED_PREFERENCES_NAME);
|
||||
addPreferencesFromResource(R.xml.preferences_application);
|
||||
|
||||
@@ -131,8 +129,7 @@ public class ApplicationSettingsActivity extends BugleActionBarActivity {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
|
||||
Preference preference) {
|
||||
public boolean onPreferenceTreeClick(@NonNull Preference preference) {
|
||||
if (preference.getKey() == mNotificationsPreferenceKey) {
|
||||
Intent intent = new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS);
|
||||
intent.putExtra(Settings.EXTRA_APP_PACKAGE, getContext().getPackageName());
|
||||
@@ -142,7 +139,7 @@ public class ApplicationSettingsActivity extends BugleActionBarActivity {
|
||||
preference.getKey() == mSmsEnabledPrefKey) {
|
||||
mIsSmsPreferenceClicked = true;
|
||||
}
|
||||
return super.onPreferenceTreeClick(preferenceScreen, preference);
|
||||
return super.onPreferenceTreeClick(preference);
|
||||
}
|
||||
|
||||
private void updateSmsEnabledPreferences() {
|
||||
|
||||
@@ -17,37 +17,29 @@
|
||||
|
||||
package com.android.messaging.ui.appsettings;
|
||||
|
||||
import android.app.FragmentTransaction;
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Bundle;
|
||||
import android.preference.Preference;
|
||||
import android.preference.Preference.OnPreferenceClickListener;
|
||||
import android.preference.PreferenceCategory;
|
||||
import android.preference.PreferenceFragment;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.support.v7.mms.MmsManager;
|
||||
import android.text.TextUtils;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.app.NavUtils;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceCategory;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
|
||||
import com.android.messaging.Factory;
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.datamodel.ParticipantRefresh;
|
||||
import com.android.messaging.datamodel.data.ParticipantData;
|
||||
import com.android.messaging.sms.ApnDatabase;
|
||||
import com.android.messaging.sms.MmsConfig;
|
||||
import com.android.messaging.sms.MmsUtils;
|
||||
import com.android.messaging.ui.BugleActionBarActivity;
|
||||
import com.android.messaging.ui.UIIntents;
|
||||
import com.android.messaging.util.Assert;
|
||||
import com.android.messaging.util.BuglePrefs;
|
||||
import com.android.messaging.util.LogUtil;
|
||||
import com.android.messaging.util.PhoneUtils;
|
||||
|
||||
public class PerSubscriptionSettingsActivity extends BugleActionBarActivity {
|
||||
@@ -64,7 +56,7 @@ public class PerSubscriptionSettingsActivity extends BugleActionBarActivity {
|
||||
// This will fall back to the default title, i.e. "Messaging settings," so No-op.
|
||||
}
|
||||
|
||||
final FragmentTransaction ft = getFragmentManager().beginTransaction();
|
||||
final FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
|
||||
final PerSubscriptionSettingsFragment fragment = new PerSubscriptionSettingsFragment();
|
||||
ft.replace(android.R.id.content, fragment);
|
||||
ft.commit();
|
||||
@@ -80,7 +72,7 @@ public class PerSubscriptionSettingsActivity extends BugleActionBarActivity {
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
public static class PerSubscriptionSettingsFragment extends PreferenceFragment
|
||||
public static class PerSubscriptionSettingsFragment extends PreferenceFragmentCompat
|
||||
implements OnSharedPreferenceChangeListener {
|
||||
private PhoneNumberPreference mPhoneNumberPreference;
|
||||
private Preference mGroupMmsPreference;
|
||||
@@ -93,12 +85,9 @@ public class PerSubscriptionSettingsActivity extends BugleActionBarActivity {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(final Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
public void onCreatePreferences(@Nullable Bundle savedInstanceState, String rootKey) {
|
||||
// Get sub id from launch intent
|
||||
final Intent intent = getActivity().getIntent();
|
||||
Assert.notNull(intent);
|
||||
final Intent intent = requireActivity().getIntent();
|
||||
mSubId = (intent != null) ? intent.getIntExtra(UIIntents.UI_INTENT_EXTRA_SUB_ID,
|
||||
ParticipantData.DEFAULT_SELF_SUB_ID) : ParticipantData.DEFAULT_SELF_SUB_ID;
|
||||
|
||||
|
||||
@@ -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.
|
||||
@@ -17,13 +18,16 @@
|
||||
package com.android.messaging.ui.appsettings;
|
||||
|
||||
import android.content.Context;
|
||||
import android.preference.EditTextPreference;
|
||||
import androidx.core.text.BidiFormatter;
|
||||
import androidx.core.text.TextDirectionHeuristicsCompat;
|
||||
import android.text.InputType;
|
||||
import android.text.TextUtils;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.text.BidiFormatter;
|
||||
import androidx.core.text.TextDirectionHeuristicsCompat;
|
||||
import androidx.preference.EditTextPreference;
|
||||
import androidx.preference.PreferenceViewHolder;
|
||||
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.util.PhoneUtils;
|
||||
@@ -52,65 +56,41 @@ public class PhoneNumberPreference extends EditTextPreference {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onBindView(final View view) {
|
||||
// Show the preference value if it's set, or the default number if not.
|
||||
// If we don't have a default, fall back to a static string (e.g. Unknown).
|
||||
public void onBindViewHolder(@NonNull PreferenceViewHolder holder) {
|
||||
setOnBindEditTextListener(editText -> editText.setInputType(InputType.TYPE_CLASS_PHONE));
|
||||
super.onBindViewHolder(holder);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public CharSequence getSummary() {
|
||||
String value = getText();
|
||||
if (TextUtils.isEmpty(value)) {
|
||||
value = mDefaultPhoneNumber;
|
||||
value = mDefaultPhoneNumber;
|
||||
}
|
||||
final String displayValue = (!TextUtils.isEmpty(value))
|
||||
? PhoneUtils.get(mSubId).formatForDisplay(value)
|
||||
: getContext().getString(R.string.unknown_phone_number_pref_display_value);
|
||||
final BidiFormatter bidiFormatter = BidiFormatter.getInstance();
|
||||
final String phoneNumber = bidiFormatter.unicodeWrap
|
||||
(displayValue, TextDirectionHeuristicsCompat.LTR);
|
||||
// Set the value as the summary and let the superclass populate the views
|
||||
setSummary(phoneNumber);
|
||||
super.onBindView(view);
|
||||
return bidiFormatter.unicodeWrap
|
||||
(displayValue, TextDirectionHeuristicsCompat.LTR);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onBindDialogView(final View view) {
|
||||
super.onBindDialogView(view);
|
||||
|
||||
final String value = getText();
|
||||
|
||||
// If the preference is empty, populate the EditText with the default number instead.
|
||||
if (TextUtils.isEmpty(value) && !TextUtils.isEmpty(mDefaultPhoneNumber)) {
|
||||
final BidiFormatter bidiFormatter = BidiFormatter.getInstance();
|
||||
final String phoneNumber = bidiFormatter.unicodeWrap
|
||||
(PhoneUtils.get(mSubId).getCanonicalBySystemLocale(mDefaultPhoneNumber),
|
||||
TextDirectionHeuristicsCompat.LTR);
|
||||
getEditText().setText(phoneNumber);
|
||||
}
|
||||
getEditText().setInputType(InputType.TYPE_CLASS_PHONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDialogClosed(final boolean positiveResult) {
|
||||
if (positiveResult && mDefaultPhoneNumber != null) {
|
||||
final String value = getEditText().getText().toString();
|
||||
public void setText(final String text) {
|
||||
String newText = text;
|
||||
if (mDefaultPhoneNumber != null) {
|
||||
final PhoneUtils phoneUtils = PhoneUtils.get(mSubId);
|
||||
final String phoneNumber = phoneUtils.getCanonicalBySystemLocale(value);
|
||||
final String phoneNumber = phoneUtils.getCanonicalBySystemLocale(text);
|
||||
final String defaultPhoneNumber = phoneUtils.getCanonicalBySystemLocale(
|
||||
mDefaultPhoneNumber);
|
||||
|
||||
// If the new value is the default, clear the preference.
|
||||
if (phoneNumber.equals(defaultPhoneNumber)) {
|
||||
setText("");
|
||||
return;
|
||||
newText = "";
|
||||
}
|
||||
}
|
||||
super.onDialogClosed(positiveResult);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setText(final String text) {
|
||||
super.setText(text);
|
||||
|
||||
// EditTextPreference doesn't show the value on the preference view, but we do.
|
||||
// We thus need to force a rebind of the view when a new value is set.
|
||||
notifyChanged();
|
||||
super.setText(newText);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,12 +17,8 @@
|
||||
|
||||
package com.android.messaging.ui.appsettings;
|
||||
|
||||
import android.app.Fragment;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.app.NavUtils;
|
||||
import android.text.TextUtils;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
@@ -32,6 +28,11 @@ import android.widget.ArrayAdapter;
|
||||
import android.widget.ListView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.app.NavUtils;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.loader.app.LoaderManager;
|
||||
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.datamodel.DataModel;
|
||||
import com.android.messaging.datamodel.binding.Binding;
|
||||
@@ -66,7 +67,7 @@ public class SettingsActivity extends BugleActionBarActivity {
|
||||
UIIntents.get().launchApplicationSettingsActivity(this, true /* topLevel */);
|
||||
finish();
|
||||
} else {
|
||||
getFragmentManager().beginTransaction()
|
||||
getSupportFragmentManager().beginTransaction()
|
||||
.replace(android.R.id.content, new SettingsFragment())
|
||||
.commit();
|
||||
}
|
||||
@@ -91,7 +92,7 @@ public class SettingsActivity extends BugleActionBarActivity {
|
||||
public void onCreate(final Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
mBinding.bind(DataModel.get().createSettingsData(getActivity(), this));
|
||||
mBinding.getData().init(getLoaderManager(), mBinding);
|
||||
mBinding.getData().init(LoaderManager.getInstance(this), mBinding);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -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,9 +17,13 @@
|
||||
|
||||
package com.android.messaging.ui.attachmentchooser;
|
||||
|
||||
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.R;
|
||||
import com.android.messaging.ui.BugleActionBarActivity;
|
||||
import com.android.messaging.ui.UIIntents;
|
||||
@@ -26,17 +31,19 @@ import com.android.messaging.ui.attachmentchooser.AttachmentChooserFragment.Atta
|
||||
import com.android.messaging.util.Assert;
|
||||
|
||||
public class AttachmentChooserActivity extends BugleActionBarActivity implements
|
||||
AttachmentChooserFragmentHost {
|
||||
AttachmentChooserFragmentHost, FragmentOnAttachListener {
|
||||
|
||||
@Override
|
||||
protected void onCreate(final Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
getSupportFragmentManager().addFragmentOnAttachListener(this);
|
||||
setContentView(R.layout.attachment_chooser_activity);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttachFragment(final Fragment fragment) {
|
||||
public void onAttachFragment(@NonNull FragmentManager fragmentManager,
|
||||
@NonNull Fragment fragment) {
|
||||
if (fragment instanceof AttachmentChooserFragment) {
|
||||
final String conversationId =
|
||||
getIntent().getStringExtra(UIIntents.UI_INTENT_EXTRA_CONVERSATION_ID);
|
||||
@@ -53,4 +60,5 @@ public class AttachmentChooserActivity extends BugleActionBarActivity implements
|
||||
setResult(RESULT_OK);
|
||||
finish();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,14 +16,10 @@
|
||||
*/
|
||||
package com.android.messaging.ui.attachmentchooser;
|
||||
|
||||
import android.app.Fragment;
|
||||
import android.content.Context;
|
||||
import android.graphics.Rect;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
@@ -32,6 +28,10 @@ import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ArrayAdapter;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.datamodel.DataModel;
|
||||
import com.android.messaging.datamodel.MessagingContentProvider;
|
||||
@@ -80,7 +80,7 @@ public class AttachmentChooserFragment extends Fragment implements DraftMessageD
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
|
||||
super.onCreateOptionsMenu(menu, inflater);
|
||||
inflater.inflate(R.menu.attachment_chooser_menu, menu);
|
||||
}
|
||||
@@ -158,7 +158,7 @@ public class AttachmentChooserFragment extends Fragment implements DraftMessageD
|
||||
|
||||
class AttachmentGridAdapter extends ArrayAdapter<MessagePartData> {
|
||||
public AttachmentGridAdapter(final Context context) {
|
||||
super(context, R.layout.attachment_grid_item_view, new ArrayList<MessagePartData>());
|
||||
super(context, R.layout.attachment_grid_item_view, new ArrayList<>());
|
||||
}
|
||||
|
||||
public void onAttachmentsLoaded(final List<MessagePartData> attachments) {
|
||||
|
||||
@@ -18,13 +18,9 @@
|
||||
package com.android.messaging.ui.contact;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Fragment;
|
||||
import android.database.Cursor;
|
||||
import android.graphics.Rect;
|
||||
import android.os.Bundle;
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.appcompat.widget.Toolbar.OnMenuItemClickListener;
|
||||
import android.text.Editable;
|
||||
import android.text.InputType;
|
||||
import android.text.TextUtils;
|
||||
@@ -39,6 +35,14 @@ import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.appcompat.widget.Toolbar.OnMenuItemClickListener;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.loader.app.LoaderManager;
|
||||
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.datamodel.DataModel;
|
||||
import com.android.messaging.datamodel.action.ActionMonitor;
|
||||
@@ -129,7 +133,7 @@ public class ContactPickerFragment extends Fragment implements ContactPickerData
|
||||
|
||||
if (ContactUtil.hasReadContactsPermission()) {
|
||||
mBinding.bind(DataModel.get().createContactPickerData(getActivity(), this));
|
||||
mBinding.getData().init(getLoaderManager(), mBinding);
|
||||
mBinding.getData().init(LoaderManager.getInstance(this), mBinding);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -192,15 +196,9 @@ public class ContactPickerFragment extends Fragment implements ContactPickerData
|
||||
return view;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* Called when the host activity has been created. At this point, the host activity should
|
||||
* have set the contact picking mode for us so that we may update our visuals.
|
||||
*/
|
||||
@Override
|
||||
public void onActivityCreated(final Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
Assert.isTrue(mContactPickingMode != MODE_UNDEFINED);
|
||||
updateVisualsForContactPickingMode(false /* animate */);
|
||||
mHost.invalidateActionBar();
|
||||
|
||||
@@ -17,17 +17,17 @@
|
||||
|
||||
package com.android.messaging.ui.conversation;
|
||||
|
||||
import android.app.FragmentManager;
|
||||
import android.app.FragmentTransaction;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Rect;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import android.text.TextUtils;
|
||||
import android.view.MenuItem;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.datamodel.MessagingContentProvider;
|
||||
@@ -227,12 +227,12 @@ public class ConversationActivity extends BugleActionBarActivity
|
||||
}
|
||||
|
||||
private ContactPickerFragment getContactPicker() {
|
||||
return (ContactPickerFragment) getFragmentManager().findFragmentByTag(
|
||||
return (ContactPickerFragment) getSupportFragmentManager().findFragmentByTag(
|
||||
ContactPickerFragment.FRAGMENT_TAG);
|
||||
}
|
||||
|
||||
private ConversationFragment getConversationFragment() {
|
||||
return (ConversationFragment) getFragmentManager().findFragmentByTag(
|
||||
return (ConversationFragment) getSupportFragmentManager().findFragmentByTag(
|
||||
ConversationFragment.FRAGMENT_TAG);
|
||||
}
|
||||
|
||||
@@ -296,7 +296,7 @@ public class ConversationActivity extends BugleActionBarActivity
|
||||
final Intent intent = getIntent();
|
||||
final String conversationId = mUiState.getConversationId();
|
||||
|
||||
final FragmentManager fragmentManager = getFragmentManager();
|
||||
final FragmentManager fragmentManager = getSupportFragmentManager();
|
||||
final FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
|
||||
|
||||
final boolean needConversationFragment = mUiState.shouldShowConversationFragment();
|
||||
|
||||
@@ -40,6 +40,7 @@ import android.view.ViewGroupOverlay;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.datamodel.data.ConversationMessageData;
|
||||
import com.android.messaging.ui.ConversationDrawables;
|
||||
|
||||
@@ -19,11 +19,7 @@ package com.android.messaging.ui.conversation;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.DownloadManager;
|
||||
import android.app.Fragment;
|
||||
import android.app.FragmentManager;
|
||||
import android.app.FragmentTransaction;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ClipData;
|
||||
import android.content.ClipboardManager;
|
||||
@@ -40,16 +36,6 @@ import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.os.Handler;
|
||||
import android.os.Parcelable;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
import androidx.core.text.BidiFormatter;
|
||||
import androidx.core.text.TextDirectionHeuristicsCompat;
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import androidx.recyclerview.widget.DefaultItemAnimator;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
|
||||
import android.telephony.PhoneNumberUtils;
|
||||
import android.text.TextUtils;
|
||||
import android.view.ActionMode;
|
||||
@@ -63,6 +49,21 @@ import android.view.ViewConfiguration;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.core.text.BidiFormatter;
|
||||
import androidx.core.text.TextDirectionHeuristicsCompat;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
import androidx.loader.app.LoaderManager;
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
import androidx.recyclerview.widget.DefaultItemAnimator;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
|
||||
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.datamodel.DataModel;
|
||||
import com.android.messaging.datamodel.MessagingContentProvider;
|
||||
@@ -442,7 +443,7 @@ public class ConversationFragment extends Fragment implements ConversationDataLi
|
||||
// Delay showing the message list until the participant list is loaded.
|
||||
mRecyclerView.setVisibility(View.INVISIBLE);
|
||||
mBinding.ensureBound();
|
||||
mBinding.getData().init(getLoaderManager(), mBinding);
|
||||
mBinding.getData().init(LoaderManager.getInstance(this), mBinding);
|
||||
|
||||
// Build the input manager with all its required dependencies and pass it along to the
|
||||
// compose message view.
|
||||
@@ -678,7 +679,7 @@ public class ConversationFragment extends Fragment implements ConversationDataLi
|
||||
}
|
||||
|
||||
@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);
|
||||
@@ -722,7 +723,8 @@ public class ConversationFragment extends Fragment implements ConversationDataLi
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) {
|
||||
public void onCreateOptionsMenu(@NonNull final Menu menu,
|
||||
@NonNull final MenuInflater inflater) {
|
||||
if (mHost.getActionMode() != null) {
|
||||
return;
|
||||
}
|
||||
@@ -979,7 +981,7 @@ public class ConversationFragment extends Fragment implements ConversationDataLi
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfigurationChanged(final Configuration newConfig) {
|
||||
public void onConfigurationChanged(@NonNull final Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
mRecyclerView.getItemAnimator().endAnimations();
|
||||
}
|
||||
@@ -1178,7 +1180,7 @@ public class ConversationFragment extends Fragment implements ConversationDataLi
|
||||
ImeUtil.hideSoftInput(getActivity(), mComposeMessageView);
|
||||
}
|
||||
|
||||
final FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction();
|
||||
final FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
|
||||
final EnterSelfPhoneNumberDialog dialog = EnterSelfPhoneNumberDialog
|
||||
.newInstance(getConversationSelfSubId());
|
||||
dialog.setTargetFragment(this, 0/*requestCode*/);
|
||||
|
||||
@@ -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.
|
||||
@@ -15,12 +16,13 @@
|
||||
*/
|
||||
package com.android.messaging.ui.conversation;
|
||||
|
||||
import android.app.FragmentManager;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import android.widget.EditText;
|
||||
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.datamodel.binding.BindingBase;
|
||||
import com.android.messaging.datamodel.binding.ImmutableBindingRef;
|
||||
|
||||
@@ -16,15 +16,17 @@
|
||||
*/
|
||||
package com.android.messaging.ui.conversation;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.app.DialogFragment;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.LayoutInflater;
|
||||
import android.widget.EditText;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.datamodel.ParticipantRefresh;
|
||||
import com.android.messaging.util.BuglePrefs;
|
||||
@@ -43,6 +45,7 @@ public class EnterSelfPhoneNumberDialog extends DialogFragment {
|
||||
return dialog;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Dialog onCreateDialog(final Bundle savedInstanceState) {
|
||||
final Context context = getActivity();
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -17,11 +17,11 @@
|
||||
|
||||
package com.android.messaging.ui.conversationsettings;
|
||||
|
||||
import android.app.Fragment;
|
||||
import android.os.Bundle;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.ui.BugleActionBarActivity;
|
||||
@@ -42,7 +42,7 @@ public class PeopleAndOptionsActivity extends BugleActionBarActivity {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttachFragment(final Fragment fragment) {
|
||||
public void onAttachFragment(@NonNull final Fragment fragment) {
|
||||
if (fragment instanceof PeopleAndOptionsFragment) {
|
||||
final String conversationId =
|
||||
getIntent().getStringExtra(UIIntents.UI_INTENT_EXTRA_CONVERSATION_ID);
|
||||
|
||||
@@ -18,7 +18,6 @@ package com.android.messaging.ui.conversationsettings;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Fragment;
|
||||
import android.app.NotificationManager;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
@@ -36,6 +35,8 @@ import android.widget.ListView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.loader.app.LoaderManager;
|
||||
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.datamodel.DataModel;
|
||||
@@ -72,7 +73,7 @@ public class PeopleAndOptionsFragment extends Fragment
|
||||
@Override
|
||||
public void onCreate(final Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
mBinding.getData().init(getLoaderManager(), mBinding);
|
||||
mBinding.getData().init(LoaderManager.getInstance(this), mBinding);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -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.
|
||||
@@ -15,11 +16,12 @@
|
||||
*/
|
||||
package com.android.messaging.ui.mediapicker;
|
||||
|
||||
import android.app.Fragment;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.android.messaging.Factory;
|
||||
import com.android.messaging.datamodel.data.PendingAttachmentData;
|
||||
import com.android.messaging.ui.UIIntents;
|
||||
|
||||
@@ -17,10 +17,8 @@
|
||||
|
||||
package com.android.messaging.ui.mediapicker;
|
||||
|
||||
import android.app.FragmentManager;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
@@ -28,6 +26,8 @@ import android.view.MenuItem;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageButton;
|
||||
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.datamodel.binding.ImmutableBindingRef;
|
||||
import com.android.messaging.datamodel.data.MediaPickerData;
|
||||
|
||||
@@ -18,16 +18,10 @@
|
||||
package com.android.messaging.ui.mediapicker;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Fragment;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.viewpager.widget.PagerAdapter;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
@@ -37,6 +31,13 @@ import android.view.ViewGroup;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.loader.app.LoaderManager;
|
||||
import androidx.viewpager.widget.PagerAdapter;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
|
||||
import com.android.messaging.Factory;
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.datamodel.DataModel;
|
||||
@@ -201,7 +202,7 @@ public class MediaPicker extends Fragment implements DraftMessageSubscriptionDat
|
||||
@Override
|
||||
public void onCreate(final Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
mBinding.getData().init(getLoaderManager());
|
||||
mBinding.getData().init(LoaderManager.getInstance(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -441,7 +442,7 @@ public class MediaPicker extends Fragment implements DraftMessageSubscriptionDat
|
||||
if (mBinding.isBound() && getActivity() != null) {
|
||||
mBinding.unbind();
|
||||
mBinding.bind(DataModel.get().createMediaPickerData(getActivity()));
|
||||
mBinding.getData().init(getLoaderManager());
|
||||
mBinding.getData().init(LoaderManager.getInstance(this));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -640,7 +641,8 @@ public class MediaPicker extends Fragment implements DraftMessageSubscriptionDat
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) {
|
||||
public void onCreateOptionsMenu(@NonNull final Menu menu,
|
||||
@NonNull final MenuInflater inflater) {
|
||||
if (mSelectedChooser != null) {
|
||||
mSelectedChooser.onCreateOptionsMenu(inflater, menu);
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
@@ -17,11 +18,12 @@
|
||||
package com.android.messaging.util;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Fragment;
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.Intent;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.android.messaging.R;
|
||||
import com.android.messaging.ui.SnackBar;
|
||||
import com.android.messaging.ui.UIIntents;
|
||||
|
||||
Reference in New Issue
Block a user