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-utils",
|
||||||
"androidx.legacy_legacy-support-core-ui",
|
"androidx.legacy_legacy-support-core-ui",
|
||||||
"androidx.palette_palette",
|
"androidx.palette_palette",
|
||||||
|
"androidx.preference_preference",
|
||||||
"androidx.recyclerview_recyclerview",
|
"androidx.recyclerview_recyclerview",
|
||||||
"androidx.viewpager_viewpager",
|
"androidx.viewpager_viewpager",
|
||||||
"androidx.legacy_legacy-support-v13",
|
"androidx.legacy_legacy-support-v13",
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2015 The Android Open Source Project
|
* Copyright (C) 2015 The Android Open Source Project
|
||||||
|
* Copyright (C) 2024 The LineageOS Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -17,9 +18,10 @@
|
|||||||
package com.android.messaging.datamodel;
|
package com.android.messaging.datamodel;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.CursorLoader;
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
|
||||||
|
import androidx.loader.content.CursorLoader;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extension to basic cursor loader that has an attached binding id
|
* 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
|
* Binding id associated with this loader - consume can check to verify data still valid
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
public String getBindingId() {
|
public String getBindingId() {
|
||||||
return mBindingId;
|
return mBindingId;
|
||||||
|
|||||||
@@ -17,13 +17,15 @@
|
|||||||
|
|
||||||
package com.android.messaging.datamodel.data;
|
package com.android.messaging.datamodel.data;
|
||||||
|
|
||||||
import android.app.LoaderManager;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Loader;
|
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
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.BoundCursorLoader;
|
||||||
import com.android.messaging.datamodel.DatabaseHelper.ParticipantColumns;
|
import com.android.messaging.datamodel.DatabaseHelper.ParticipantColumns;
|
||||||
import com.android.messaging.datamodel.MessagingContentProvider;
|
import com.android.messaging.datamodel.MessagingContentProvider;
|
||||||
@@ -51,6 +53,7 @@ public class BlockedParticipantsData extends BindableData implements
|
|||||||
mListener = listener;
|
mListener = listener;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
||||||
Assert.isTrue(id == BLOCKED_PARTICIPANTS_LOADER);
|
Assert.isTrue(id == BLOCKED_PARTICIPANTS_LOADER);
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2015 The Android Open Source Project
|
* Copyright (C) 2015 The Android Open Source Project
|
||||||
|
* Copyright (C) 2024 The LineageOS Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -16,12 +17,14 @@
|
|||||||
|
|
||||||
package com.android.messaging.datamodel.data;
|
package com.android.messaging.datamodel.data;
|
||||||
|
|
||||||
import android.app.LoaderManager;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Loader;
|
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.os.Bundle;
|
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.BoundCursorLoader;
|
||||||
import com.android.messaging.datamodel.FrequentContactsCursorBuilder;
|
import com.android.messaging.datamodel.FrequentContactsCursorBuilder;
|
||||||
import com.android.messaging.datamodel.MessagingContentProvider;
|
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 FREQUENT_CONTACTS_LOADER = 2;
|
||||||
private static final int PARTICIPANT_LOADER = 3;
|
private static final int PARTICIPANT_LOADER = 3;
|
||||||
|
|
||||||
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
||||||
final String bindingId = args.getString(BINDING_ID);
|
final String bindingId = args.getString(BINDING_ID);
|
||||||
@@ -91,7 +95,7 @@ public class ContactPickerData extends BindableData implements
|
|||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@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;
|
final BoundCursorLoader cursorLoader = (BoundCursorLoader) loader;
|
||||||
if (isBound(cursorLoader.getBindingId())) {
|
if (isBound(cursorLoader.getBindingId())) {
|
||||||
switch (loader.getId()) {
|
switch (loader.getId()) {
|
||||||
|
|||||||
@@ -17,17 +17,19 @@
|
|||||||
|
|
||||||
package com.android.messaging.datamodel.data;
|
package com.android.messaging.datamodel.data;
|
||||||
|
|
||||||
import android.app.LoaderManager;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Loader;
|
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.database.CursorWrapper;
|
import android.database.CursorWrapper;
|
||||||
import android.database.sqlite.SQLiteFullException;
|
import android.database.sqlite.SQLiteFullException;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import android.text.TextUtils;
|
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.common.contacts.DataUsageStatUpdater;
|
||||||
import com.android.messaging.Factory;
|
import com.android.messaging.Factory;
|
||||||
import com.android.messaging.R;
|
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.
|
* A trampoline class so that we can inherit from LoaderManager.LoaderCallbacks multiple times.
|
||||||
*/
|
*/
|
||||||
private class MetadataLoaderCallbacks implements LoaderManager.LoaderCallbacks<Cursor> {
|
private class MetadataLoaderCallbacks implements LoaderManager.LoaderCallbacks<Cursor> {
|
||||||
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
||||||
Assert.equals(CONVERSATION_META_DATA_LOADER, id);
|
Assert.equals(CONVERSATION_META_DATA_LOADER, id);
|
||||||
@@ -200,7 +203,7 @@ public class ConversationData extends BindableData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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;
|
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
||||||
|
|
||||||
// Check if data still bound to the requesting ui element
|
// Check if data still bound to the requesting ui element
|
||||||
@@ -227,7 +230,7 @@ public class ConversationData extends BindableData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoaderReset(final Loader<Cursor> generic) {
|
public void onLoaderReset(@NonNull final Loader<Cursor> generic) {
|
||||||
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
||||||
|
|
||||||
// Check if data still bound to the requesting ui element
|
// 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.
|
* A trampoline class so that we can inherit from LoaderManager.LoaderCallbacks multiple times.
|
||||||
*/
|
*/
|
||||||
private class MessagesLoaderCallbacks implements LoaderManager.LoaderCallbacks<Cursor> {
|
private class MessagesLoaderCallbacks implements LoaderManager.LoaderCallbacks<Cursor> {
|
||||||
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
||||||
Assert.equals(CONVERSATION_MESSAGES_LOADER, id);
|
Assert.equals(CONVERSATION_MESSAGES_LOADER, id);
|
||||||
@@ -268,7 +272,7 @@ public class ConversationData extends BindableData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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;
|
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
||||||
|
|
||||||
// Check if data still bound to the requesting ui element
|
// Check if data still bound to the requesting ui element
|
||||||
@@ -316,7 +320,7 @@ public class ConversationData extends BindableData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoaderReset(final Loader<Cursor> generic) {
|
public void onLoaderReset(@NonNull final Loader<Cursor> generic) {
|
||||||
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
||||||
|
|
||||||
// Check if data still bound to the requesting ui element
|
// 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.
|
* A trampoline class so that we can inherit from LoaderManager.LoaderCallbacks multiple times.
|
||||||
*/
|
*/
|
||||||
private class ParticipantLoaderCallbacks implements LoaderManager.LoaderCallbacks<Cursor> {
|
private class ParticipantLoaderCallbacks implements LoaderManager.LoaderCallbacks<Cursor> {
|
||||||
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
||||||
Assert.equals(PARTICIPANT_LOADER, id);
|
Assert.equals(PARTICIPANT_LOADER, id);
|
||||||
@@ -369,7 +374,7 @@ public class ConversationData extends BindableData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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;
|
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
||||||
|
|
||||||
// Check if data still bound to the requesting ui element
|
// Check if data still bound to the requesting ui element
|
||||||
@@ -383,7 +388,7 @@ public class ConversationData extends BindableData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoaderReset(final Loader<Cursor> generic) {
|
public void onLoaderReset(@NonNull final Loader<Cursor> generic) {
|
||||||
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
||||||
|
|
||||||
// Check if data still bound to the requesting ui element
|
// 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.
|
* A trampoline class so that we can inherit from LoaderManager.LoaderCallbacks multiple times.
|
||||||
*/
|
*/
|
||||||
private class SelfParticipantLoaderCallbacks implements LoaderManager.LoaderCallbacks<Cursor> {
|
private class SelfParticipantLoaderCallbacks implements LoaderManager.LoaderCallbacks<Cursor> {
|
||||||
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
||||||
Assert.equals(SELF_PARTICIPANT_LOADER, id);
|
Assert.equals(SELF_PARTICIPANT_LOADER, id);
|
||||||
@@ -422,7 +428,7 @@ public class ConversationData extends BindableData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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;
|
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
||||||
|
|
||||||
// Check if data still bound to the requesting ui element
|
// Check if data still bound to the requesting ui element
|
||||||
@@ -437,7 +443,7 @@ public class ConversationData extends BindableData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoaderReset(final Loader<Cursor> generic) {
|
public void onLoaderReset(@NonNull final Loader<Cursor> generic) {
|
||||||
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
||||||
|
|
||||||
// Check if data still bound to the requesting ui element
|
// Check if data still bound to the requesting ui element
|
||||||
|
|||||||
@@ -17,12 +17,14 @@
|
|||||||
|
|
||||||
package com.android.messaging.datamodel.data;
|
package com.android.messaging.datamodel.data;
|
||||||
|
|
||||||
import android.app.LoaderManager;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Loader;
|
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.os.Bundle;
|
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.BoundCursorLoader;
|
||||||
import com.android.messaging.datamodel.BugleNotifications;
|
import com.android.messaging.datamodel.BugleNotifications;
|
||||||
import com.android.messaging.datamodel.DataModel;
|
import com.android.messaging.datamodel.DataModel;
|
||||||
@@ -81,6 +83,7 @@ public class ConversationListData extends BindableData
|
|||||||
// all blocked participants
|
// all blocked participants
|
||||||
private final HashSet<String> mBlockedParticipants = new HashSet<String>();
|
private final HashSet<String> mBlockedParticipants = new HashSet<String>();
|
||||||
|
|
||||||
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
||||||
final String bindingId = args.getString(BINDING_ID);
|
final String bindingId = args.getString(BINDING_ID);
|
||||||
@@ -116,7 +119,7 @@ public class ConversationListData extends BindableData
|
|||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@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;
|
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
||||||
if (isBound(loader.getBindingId())) {
|
if (isBound(loader.getBindingId())) {
|
||||||
switch (loader.getId()) {
|
switch (loader.getId()) {
|
||||||
@@ -145,7 +148,7 @@ public class ConversationListData extends BindableData
|
|||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void onLoaderReset(final Loader<Cursor> generic) {
|
public void onLoaderReset(@NonNull final Loader<Cursor> generic) {
|
||||||
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
||||||
if (isBound(loader.getBindingId())) {
|
if (isBound(loader.getBindingId())) {
|
||||||
switch (loader.getId()) {
|
switch (loader.getId()) {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2015 The Android Open Source Project
|
* Copyright (C) 2015 The Android Open Source Project
|
||||||
|
* Copyright (C) 2024 The LineageOS Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -16,12 +17,14 @@
|
|||||||
|
|
||||||
package com.android.messaging.datamodel.data;
|
package com.android.messaging.datamodel.data;
|
||||||
|
|
||||||
import android.app.LoaderManager;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Loader;
|
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
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.BoundCursorLoader;
|
||||||
import com.android.messaging.datamodel.GalleryBoundCursorLoader;
|
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.
|
* A trampoline class so that we can inherit from LoaderManager.LoaderCallbacks multiple times.
|
||||||
*/
|
*/
|
||||||
private class GalleryLoaderCallbacks implements LoaderManager.LoaderCallbacks<Cursor> {
|
private class GalleryLoaderCallbacks implements LoaderManager.LoaderCallbacks<Cursor> {
|
||||||
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
||||||
final String bindingId = args.getString(BINDING_ID);
|
final String bindingId = args.getString(BINDING_ID);
|
||||||
@@ -80,7 +84,7 @@ public class MediaPickerData extends BindableData {
|
|||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@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;
|
final BoundCursorLoader cursorLoader = (BoundCursorLoader) loader;
|
||||||
if (isBound(cursorLoader.getBindingId())) {
|
if (isBound(cursorLoader.getBindingId())) {
|
||||||
switch (loader.getId()) {
|
switch (loader.getId()) {
|
||||||
@@ -102,7 +106,7 @@ public class MediaPickerData extends BindableData {
|
|||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void onLoaderReset(final Loader<Cursor> loader) {
|
public void onLoaderReset(@NonNull final Loader<Cursor> loader) {
|
||||||
final BoundCursorLoader cursorLoader = (BoundCursorLoader) loader;
|
final BoundCursorLoader cursorLoader = (BoundCursorLoader) loader;
|
||||||
if (isBound(cursorLoader.getBindingId())) {
|
if (isBound(cursorLoader.getBindingId())) {
|
||||||
switch (loader.getId()) {
|
switch (loader.getId()) {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2015 The Android Open Source Project
|
* Copyright (C) 2015 The Android Open Source Project
|
||||||
|
* Copyright (C) 2024 The LineageOS Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -16,13 +17,15 @@
|
|||||||
|
|
||||||
package com.android.messaging.datamodel.data;
|
package com.android.messaging.datamodel.data;
|
||||||
|
|
||||||
import android.app.LoaderManager;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Loader;
|
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
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.BoundCursorLoader;
|
||||||
import com.android.messaging.datamodel.MessagingContentProvider;
|
import com.android.messaging.datamodel.MessagingContentProvider;
|
||||||
import com.android.messaging.datamodel.action.BugleActionToasts;
|
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 CONVERSATION_OPTIONS_LOADER = 1;
|
||||||
private static final int PARTICIPANT_LOADER = 2;
|
private static final int PARTICIPANT_LOADER = 2;
|
||||||
|
|
||||||
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
||||||
final String bindingId = args.getString(BINDING_ID);
|
final String bindingId = args.getString(BINDING_ID);
|
||||||
@@ -98,7 +102,7 @@ public class PeopleAndOptionsData extends BindableData implements
|
|||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@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;
|
final BoundCursorLoader cursorLoader = (BoundCursorLoader) loader;
|
||||||
if (isBound(cursorLoader.getBindingId())) {
|
if (isBound(cursorLoader.getBindingId())) {
|
||||||
switch (loader.getId()) {
|
switch (loader.getId()) {
|
||||||
@@ -126,7 +130,7 @@ public class PeopleAndOptionsData extends BindableData implements
|
|||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void onLoaderReset(final Loader<Cursor> loader) {
|
public void onLoaderReset(@NonNull final Loader<Cursor> loader) {
|
||||||
final BoundCursorLoader cursorLoader = (BoundCursorLoader) loader;
|
final BoundCursorLoader cursorLoader = (BoundCursorLoader) loader;
|
||||||
if (isBound(cursorLoader.getBindingId())) {
|
if (isBound(cursorLoader.getBindingId())) {
|
||||||
switch (loader.getId()) {
|
switch (loader.getId()) {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2015 The Android Open Source Project
|
* Copyright (C) 2015 The Android Open Source Project
|
||||||
|
* Copyright (C) 2024 The LineageOS Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -16,13 +17,15 @@
|
|||||||
|
|
||||||
package com.android.messaging.datamodel.data;
|
package com.android.messaging.datamodel.data;
|
||||||
|
|
||||||
import android.app.LoaderManager;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Loader;
|
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.TextUtils;
|
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.R;
|
||||||
import com.android.messaging.datamodel.BoundCursorLoader;
|
import com.android.messaging.datamodel.BoundCursorLoader;
|
||||||
import com.android.messaging.datamodel.DatabaseHelper.ParticipantColumns;
|
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;
|
private static final int SELF_PARTICIPANT_LOADER = 1;
|
||||||
|
|
||||||
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
public Loader<Cursor> onCreateLoader(final int id, final Bundle args) {
|
||||||
Assert.equals(SELF_PARTICIPANT_LOADER, id);
|
Assert.equals(SELF_PARTICIPANT_LOADER, id);
|
||||||
@@ -147,7 +151,7 @@ public class SettingsData extends BindableData implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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;
|
final BoundCursorLoader loader = (BoundCursorLoader) generic;
|
||||||
|
|
||||||
// Check if data still bound to the requesting ui element
|
// Check if data still bound to the requesting ui element
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2015 The Android Open Source Project
|
* Copyright (C) 2015 The Android Open Source Project
|
||||||
|
* Copyright (C) 2024 The LineageOS Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -16,9 +17,10 @@
|
|||||||
|
|
||||||
package com.android.messaging.ui;
|
package com.android.messaging.ui;
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
import androidx.fragment.app.FragmentActivity;
|
||||||
|
|
||||||
import com.android.messaging.util.BugleActivityUtil;
|
import com.android.messaging.util.BugleActivityUtil;
|
||||||
import com.android.messaging.util.LogUtil;
|
import com.android.messaging.util.LogUtil;
|
||||||
import com.android.messaging.util.UiUtils;
|
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
|
* Base class for app activities that would normally derive from Activity. Responsible for
|
||||||
* ensuring app requirements are met during onResume()
|
* ensuring app requirements are met during onResume()
|
||||||
*/
|
*/
|
||||||
public class BaseBugleActivity extends Activity {
|
public class BaseBugleActivity extends FragmentActivity {
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(final Bundle savedInstanceState) {
|
protected void onCreate(final Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2015 The Android Open Source Project
|
* Copyright (C) 2015 The Android Open Source Project
|
||||||
|
* Copyright (C) 2024 The LineageOS Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -16,7 +17,7 @@
|
|||||||
|
|
||||||
package com.android.messaging.ui;
|
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.BugleActivityUtil;
|
||||||
import com.android.messaging.util.LogUtil;
|
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
|
* Base class for app activities that would normally derive from FragmentActivity. Responsible for
|
||||||
* ensuring app requirements are met during onResume()
|
* ensuring app requirements are met during onResume()
|
||||||
*/
|
*/
|
||||||
public class BaseBugleFragmentActivity extends Activity {
|
public class BaseBugleFragmentActivity extends FragmentActivity {
|
||||||
@Override
|
@Override
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2015 The Android Open Source Project
|
* Copyright (C) 2015 The Android Open Source Project
|
||||||
|
* Copyright (C) 2024 The LineageOS Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -15,17 +16,19 @@
|
|||||||
*/
|
*/
|
||||||
package com.android.messaging.ui;
|
package com.android.messaging.ui;
|
||||||
|
|
||||||
import android.app.Fragment;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import androidx.cursoradapter.widget.CursorAdapter;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.ListView;
|
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.R;
|
||||||
import com.android.messaging.datamodel.binding.Binding;
|
import com.android.messaging.datamodel.binding.Binding;
|
||||||
import com.android.messaging.datamodel.binding.BindingBase;
|
import com.android.messaging.datamodel.binding.BindingBase;
|
||||||
@@ -58,7 +61,7 @@ public class BlockedParticipantsFragment extends Fragment
|
|||||||
mAdapter = new BlockedParticipantListAdapter(getActivity(), null);
|
mAdapter = new BlockedParticipantListAdapter(getActivity(), null);
|
||||||
mListView.setAdapter(mAdapter);
|
mListView.setAdapter(mAdapter);
|
||||||
mBinding.bind(DataModel.get().createBlockedParticipantsData(getActivity(), this));
|
mBinding.bind(DataModel.get().createBlockedParticipantsData(getActivity(), this));
|
||||||
mBinding.getData().init(getLoaderManager(), mBinding);
|
mBinding.getData().init(LoaderManager.getInstance(this), mBinding);
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import android.os.Handler;
|
|||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.FilterQueryProvider;
|
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
|
* @deprecated This option is discouraged, as it results in Cursor queries
|
||||||
* being performed on the application's UI thread and thus can cause poor
|
* being performed on the application's UI thread and thus can cause poor
|
||||||
* responsiveness or even Application Not Responding errors. As an alternative,
|
* 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
|
@Deprecated
|
||||||
public static final int FLAG_AUTO_REQUERY = 0x01;
|
public static final int FLAG_AUTO_REQUERY = 0x01;
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
package com.android.messaging.ui;
|
package com.android.messaging.ui;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import androidx.viewpager.widget.PagerAdapter;
|
import androidx.viewpager.widget.PagerAdapter;
|
||||||
import androidx.viewpager.widget.ViewPager;
|
import androidx.viewpager.widget.ViewPager;
|
||||||
import androidx.viewpager.widget.ViewPager.OnPageChangeListener;
|
import androidx.viewpager.widget.ViewPager.OnPageChangeListener;
|
||||||
@@ -66,7 +67,7 @@ public class CustomHeaderViewPager extends LinearLayout {
|
|||||||
final PagerAdapter adapter = new CustomHeaderViewPagerAdapter(viewHolders);
|
final PagerAdapter adapter = new CustomHeaderViewPagerAdapter(viewHolders);
|
||||||
mViewPager.setAdapter(adapter);
|
mViewPager.setAdapter(adapter);
|
||||||
mTabstrip.setViewPager(mViewPager);
|
mTabstrip.setViewPager(mViewPager);
|
||||||
mViewPager.setOnPageChangeListener(new OnPageChangeListener() {
|
mViewPager.addOnPageChangeListener(new OnPageChangeListener() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPageScrollStateChanged(int state) {
|
public void onPageScrollStateChanged(int state) {
|
||||||
|
|||||||
@@ -17,7 +17,6 @@
|
|||||||
package com.android.messaging.ui;
|
package com.android.messaging.ui;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.Fragment;
|
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
import android.content.ContentValues;
|
import android.content.ContentValues;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -27,6 +26,8 @@ import android.graphics.Rect;
|
|||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
import com.android.messaging.Factory;
|
import com.android.messaging.Factory;
|
||||||
import com.android.messaging.datamodel.data.MessageData;
|
import com.android.messaging.datamodel.data.MessageData;
|
||||||
import com.android.messaging.util.ConversationIdSet;
|
import com.android.messaging.util.ConversationIdSet;
|
||||||
|
|||||||
@@ -17,7 +17,6 @@
|
|||||||
package com.android.messaging.ui;
|
package com.android.messaging.ui;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.Fragment;
|
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
import android.app.role.RoleManager;
|
import android.app.role.RoleManager;
|
||||||
import android.appwidget.AppWidgetManager;
|
import android.appwidget.AppWidgetManager;
|
||||||
@@ -36,6 +35,7 @@ import android.provider.MediaStore;
|
|||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.core.app.TaskStackBuilder;
|
import androidx.core.app.TaskStackBuilder;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
|
|||||||
@@ -16,12 +16,14 @@
|
|||||||
*/
|
*/
|
||||||
package com.android.messaging.ui;
|
package com.android.messaging.ui;
|
||||||
|
|
||||||
import android.app.Fragment;
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
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.R;
|
||||||
import com.android.messaging.util.Assert;
|
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
|
* An activity that hosts VCardDetailFragment that shows the content of a VCard that contains one
|
||||||
* or more contacts.
|
* or more contacts.
|
||||||
*/
|
*/
|
||||||
public class VCardDetailActivity extends BugleActionBarActivity {
|
public class VCardDetailActivity extends BugleActionBarActivity
|
||||||
|
implements FragmentOnAttachListener {
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(final Bundle savedInstanceState) {
|
protected void onCreate(final Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
getSupportFragmentManager().addFragmentOnAttachListener(this);
|
||||||
setContentView(R.layout.vcard_detail_activity);
|
setContentView(R.layout.vcard_detail_activity);
|
||||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttachFragment(final Fragment fragment) {
|
public void onAttachFragment(@NonNull FragmentManager fragmentManager,
|
||||||
|
@NonNull final Fragment fragment) {
|
||||||
if (fragment instanceof VCardDetailFragment) {
|
if (fragment instanceof VCardDetailFragment) {
|
||||||
final Uri vCardUri =
|
final Uri vCardUri =
|
||||||
getIntent().getParcelableExtra(UIIntents.UI_INTENT_EXTRA_VCARD_URI);
|
getIntent().getParcelableExtra(UIIntents.UI_INTENT_EXTRA_VCARD_URI);
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
*/
|
*/
|
||||||
package com.android.messaging.ui;
|
package com.android.messaging.ui;
|
||||||
|
|
||||||
import android.app.Fragment;
|
|
||||||
import android.content.ActivityNotFoundException;
|
import android.content.ActivityNotFoundException;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
@@ -30,6 +29,9 @@ import android.view.ViewGroup;
|
|||||||
import android.widget.ExpandableListAdapter;
|
import android.widget.ExpandableListAdapter;
|
||||||
import android.widget.ExpandableListView;
|
import android.widget.ExpandableListView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
import com.android.messaging.R;
|
import com.android.messaging.R;
|
||||||
import com.android.messaging.datamodel.DataModel;
|
import com.android.messaging.datamodel.DataModel;
|
||||||
import com.android.messaging.datamodel.MediaScratchFileProvider;
|
import com.android.messaging.datamodel.MediaScratchFileProvider;
|
||||||
@@ -113,7 +115,8 @@ public class VCardDetailFragment extends Fragment implements PersonItemDataListe
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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);
|
super.onCreateOptionsMenu(menu, inflater);
|
||||||
inflater.inflate(R.menu.vcard_detail_fragment_menu, menu);
|
inflater.inflate(R.menu.vcard_detail_fragment_menu, menu);
|
||||||
final MenuItem addToContactsItem = menu.findItem(R.id.action_add_contact);
|
final MenuItem addToContactsItem = menu.findItem(R.id.action_add_contact);
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2015 The Android Open Source Project
|
* Copyright (C) 2015 The Android Open Source Project
|
||||||
|
* Copyright (C) 2024 The LineageOS Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -16,11 +17,15 @@
|
|||||||
|
|
||||||
package com.android.messaging.ui;
|
package com.android.messaging.ui;
|
||||||
|
|
||||||
import android.app.Fragment;
|
|
||||||
import android.appwidget.AppWidgetManager;
|
import android.appwidget.AppWidgetManager;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
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.Factory;
|
||||||
import com.android.messaging.datamodel.data.ConversationListItemData;
|
import com.android.messaging.datamodel.data.ConversationListItemData;
|
||||||
import com.android.messaging.ui.conversationlist.ShareIntentFragment;
|
import com.android.messaging.ui.conversationlist.ShareIntentFragment;
|
||||||
@@ -29,7 +34,7 @@ import com.android.messaging.util.BuglePrefs;
|
|||||||
import com.android.messaging.widget.WidgetConversationProvider;
|
import com.android.messaging.widget.WidgetConversationProvider;
|
||||||
|
|
||||||
public class WidgetPickConversationActivity extends BaseBugleActivity implements
|
public class WidgetPickConversationActivity extends BaseBugleActivity implements
|
||||||
ShareIntentFragment.HostInterface {
|
ShareIntentFragment.HostInterface, FragmentOnAttachListener {
|
||||||
|
|
||||||
private int mAppWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID;
|
private int mAppWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID;
|
||||||
|
|
||||||
@@ -37,7 +42,6 @@ public class WidgetPickConversationActivity extends BaseBugleActivity implements
|
|||||||
protected void onCreate(final Bundle savedInstanceState) {
|
protected void onCreate(final Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
|
|
||||||
// Set the result to CANCELED. This will cause the widget host to cancel
|
// Set the result to CANCELED. This will cause the widget host to cancel
|
||||||
// out of the widget placement if they press the back button.
|
// out of the widget placement if they press the back button.
|
||||||
setResult(RESULT_CANCELED);
|
setResult(RESULT_CANCELED);
|
||||||
@@ -55,15 +59,18 @@ public class WidgetPickConversationActivity extends BaseBugleActivity implements
|
|||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getSupportFragmentManager().addFragmentOnAttachListener(this);
|
||||||
|
|
||||||
final ShareIntentFragment convPicker = new ShareIntentFragment();
|
final ShareIntentFragment convPicker = new ShareIntentFragment();
|
||||||
final Bundle bundle = new Bundle();
|
final Bundle bundle = new Bundle();
|
||||||
bundle.putBoolean(ShareIntentFragment.HIDE_NEW_CONVERSATION_BUTTON_KEY, true);
|
bundle.putBoolean(ShareIntentFragment.HIDE_NEW_CONVERSATION_BUTTON_KEY, true);
|
||||||
convPicker.setArguments(bundle);
|
convPicker.setArguments(bundle);
|
||||||
convPicker.show(getFragmentManager(), "ShareIntentFragment");
|
convPicker.show(getSupportFragmentManager(), "ShareIntentFragment");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttachFragment(final Fragment fragment) {
|
public void onAttachFragment(@NonNull FragmentManager fragmentManager,
|
||||||
|
@NonNull Fragment fragment) {
|
||||||
final Intent intent = getIntent();
|
final Intent intent = getIntent();
|
||||||
final String action = intent.getAction();
|
final String action = intent.getAction();
|
||||||
if (!AppWidgetManager.ACTION_APPWIDGET_CONFIGURE.equals(action)) {
|
if (!AppWidgetManager.ACTION_APPWIDGET_CONFIGURE.equals(action)) {
|
||||||
@@ -110,5 +117,4 @@ public class WidgetPickConversationActivity extends BaseBugleActivity implements
|
|||||||
final BuglePrefs prefs = Factory.get().getWidgetPrefs();
|
final BuglePrefs prefs = Factory.get().getWidgetPrefs();
|
||||||
prefs.remove(UIIntents.UI_INTENT_EXTRA_CONVERSATION_ID + appWidgetId);
|
prefs.remove(UIIntents.UI_INTENT_EXTRA_CONVERSATION_ID + appWidgetId);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,22 +17,21 @@
|
|||||||
|
|
||||||
package com.android.messaging.ui.appsettings;
|
package com.android.messaging.ui.appsettings;
|
||||||
|
|
||||||
import android.app.FragmentTransaction;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
|
||||||
import android.os.Bundle;
|
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 android.provider.Settings;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.core.app.NavUtils;
|
|
||||||
import android.text.TextUtils;
|
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
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.R;
|
||||||
import com.android.messaging.ui.BugleActionBarActivity;
|
import com.android.messaging.ui.BugleActionBarActivity;
|
||||||
import com.android.messaging.ui.LicenseActivity;
|
import com.android.messaging.ui.LicenseActivity;
|
||||||
@@ -52,7 +51,7 @@ public class ApplicationSettingsActivity extends BugleActionBarActivity {
|
|||||||
getSupportActionBar().setTitle(getString(R.string.settings_activity_title));
|
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.replace(android.R.id.content, new ApplicationSettingsFragment());
|
||||||
ft.commit();
|
ft.commit();
|
||||||
}
|
}
|
||||||
@@ -80,7 +79,7 @@ public class ApplicationSettingsActivity extends BugleActionBarActivity {
|
|||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class ApplicationSettingsFragment extends PreferenceFragment {
|
public static class ApplicationSettingsFragment extends PreferenceFragmentCompat {
|
||||||
|
|
||||||
private String mNotificationsPreferenceKey;
|
private String mNotificationsPreferenceKey;
|
||||||
private Preference mNotificationsPreference;
|
private Preference mNotificationsPreference;
|
||||||
@@ -97,9 +96,8 @@ public class ApplicationSettingsActivity extends BugleActionBarActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(final Bundle savedInstanceState) {
|
public void onCreatePreferences(@Nullable Bundle savedInstanceState,
|
||||||
super.onCreate(savedInstanceState);
|
@Nullable String rootKey) {
|
||||||
|
|
||||||
getPreferenceManager().setSharedPreferencesName(BuglePrefs.SHARED_PREFERENCES_NAME);
|
getPreferenceManager().setSharedPreferencesName(BuglePrefs.SHARED_PREFERENCES_NAME);
|
||||||
addPreferencesFromResource(R.xml.preferences_application);
|
addPreferencesFromResource(R.xml.preferences_application);
|
||||||
|
|
||||||
@@ -131,8 +129,7 @@ public class ApplicationSettingsActivity extends BugleActionBarActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
|
public boolean onPreferenceTreeClick(@NonNull Preference preference) {
|
||||||
Preference preference) {
|
|
||||||
if (preference.getKey() == mNotificationsPreferenceKey) {
|
if (preference.getKey() == mNotificationsPreferenceKey) {
|
||||||
Intent intent = new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS);
|
Intent intent = new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS);
|
||||||
intent.putExtra(Settings.EXTRA_APP_PACKAGE, getContext().getPackageName());
|
intent.putExtra(Settings.EXTRA_APP_PACKAGE, getContext().getPackageName());
|
||||||
@@ -142,7 +139,7 @@ public class ApplicationSettingsActivity extends BugleActionBarActivity {
|
|||||||
preference.getKey() == mSmsEnabledPrefKey) {
|
preference.getKey() == mSmsEnabledPrefKey) {
|
||||||
mIsSmsPreferenceClicked = true;
|
mIsSmsPreferenceClicked = true;
|
||||||
}
|
}
|
||||||
return super.onPreferenceTreeClick(preferenceScreen, preference);
|
return super.onPreferenceTreeClick(preference);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateSmsEnabledPreferences() {
|
private void updateSmsEnabledPreferences() {
|
||||||
|
|||||||
@@ -17,37 +17,29 @@
|
|||||||
|
|
||||||
package com.android.messaging.ui.appsettings;
|
package com.android.messaging.ui.appsettings;
|
||||||
|
|
||||||
import android.app.FragmentTransaction;
|
|
||||||
import android.content.ActivityNotFoundException;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
|
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
|
||||||
import android.content.pm.PackageManager;
|
|
||||||
import android.os.Bundle;
|
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.text.TextUtils;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
import androidx.core.app.NavUtils;
|
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.Factory;
|
||||||
import com.android.messaging.R;
|
import com.android.messaging.R;
|
||||||
import com.android.messaging.datamodel.ParticipantRefresh;
|
import com.android.messaging.datamodel.ParticipantRefresh;
|
||||||
import com.android.messaging.datamodel.data.ParticipantData;
|
import com.android.messaging.datamodel.data.ParticipantData;
|
||||||
import com.android.messaging.sms.ApnDatabase;
|
|
||||||
import com.android.messaging.sms.MmsConfig;
|
import com.android.messaging.sms.MmsConfig;
|
||||||
import com.android.messaging.sms.MmsUtils;
|
|
||||||
import com.android.messaging.ui.BugleActionBarActivity;
|
import com.android.messaging.ui.BugleActionBarActivity;
|
||||||
import com.android.messaging.ui.UIIntents;
|
import com.android.messaging.ui.UIIntents;
|
||||||
import com.android.messaging.util.Assert;
|
|
||||||
import com.android.messaging.util.BuglePrefs;
|
import com.android.messaging.util.BuglePrefs;
|
||||||
import com.android.messaging.util.LogUtil;
|
|
||||||
import com.android.messaging.util.PhoneUtils;
|
import com.android.messaging.util.PhoneUtils;
|
||||||
|
|
||||||
public class PerSubscriptionSettingsActivity extends BugleActionBarActivity {
|
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.
|
// 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();
|
final PerSubscriptionSettingsFragment fragment = new PerSubscriptionSettingsFragment();
|
||||||
ft.replace(android.R.id.content, fragment);
|
ft.replace(android.R.id.content, fragment);
|
||||||
ft.commit();
|
ft.commit();
|
||||||
@@ -80,7 +72,7 @@ public class PerSubscriptionSettingsActivity extends BugleActionBarActivity {
|
|||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class PerSubscriptionSettingsFragment extends PreferenceFragment
|
public static class PerSubscriptionSettingsFragment extends PreferenceFragmentCompat
|
||||||
implements OnSharedPreferenceChangeListener {
|
implements OnSharedPreferenceChangeListener {
|
||||||
private PhoneNumberPreference mPhoneNumberPreference;
|
private PhoneNumberPreference mPhoneNumberPreference;
|
||||||
private Preference mGroupMmsPreference;
|
private Preference mGroupMmsPreference;
|
||||||
@@ -93,12 +85,9 @@ public class PerSubscriptionSettingsActivity extends BugleActionBarActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(final Bundle savedInstanceState) {
|
public void onCreatePreferences(@Nullable Bundle savedInstanceState, String rootKey) {
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
|
|
||||||
// Get sub id from launch intent
|
// Get sub id from launch intent
|
||||||
final Intent intent = getActivity().getIntent();
|
final Intent intent = requireActivity().getIntent();
|
||||||
Assert.notNull(intent);
|
|
||||||
mSubId = (intent != null) ? intent.getIntExtra(UIIntents.UI_INTENT_EXTRA_SUB_ID,
|
mSubId = (intent != null) ? intent.getIntExtra(UIIntents.UI_INTENT_EXTRA_SUB_ID,
|
||||||
ParticipantData.DEFAULT_SELF_SUB_ID) : ParticipantData.DEFAULT_SELF_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) 2015 The Android Open Source Project
|
||||||
|
* Copyright (C) 2024 The LineageOS Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -17,13 +18,16 @@
|
|||||||
package com.android.messaging.ui.appsettings;
|
package com.android.messaging.ui.appsettings;
|
||||||
|
|
||||||
import android.content.Context;
|
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.InputType;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.AttributeSet;
|
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.R;
|
||||||
import com.android.messaging.util.PhoneUtils;
|
import com.android.messaging.util.PhoneUtils;
|
||||||
@@ -52,9 +56,14 @@ public class PhoneNumberPreference extends EditTextPreference {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onBindView(final View view) {
|
public void onBindViewHolder(@NonNull PreferenceViewHolder holder) {
|
||||||
// Show the preference value if it's set, or the default number if not.
|
setOnBindEditTextListener(editText -> editText.setInputType(InputType.TYPE_CLASS_PHONE));
|
||||||
// If we don't have a default, fall back to a static string (e.g. Unknown).
|
super.onBindViewHolder(holder);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public CharSequence getSummary() {
|
||||||
String value = getText();
|
String value = getText();
|
||||||
if (TextUtils.isEmpty(value)) {
|
if (TextUtils.isEmpty(value)) {
|
||||||
value = mDefaultPhoneNumber;
|
value = mDefaultPhoneNumber;
|
||||||
@@ -63,54 +72,25 @@ public class PhoneNumberPreference extends EditTextPreference {
|
|||||||
? PhoneUtils.get(mSubId).formatForDisplay(value)
|
? PhoneUtils.get(mSubId).formatForDisplay(value)
|
||||||
: getContext().getString(R.string.unknown_phone_number_pref_display_value);
|
: getContext().getString(R.string.unknown_phone_number_pref_display_value);
|
||||||
final BidiFormatter bidiFormatter = BidiFormatter.getInstance();
|
final BidiFormatter bidiFormatter = BidiFormatter.getInstance();
|
||||||
final String phoneNumber = bidiFormatter.unicodeWrap
|
return bidiFormatter.unicodeWrap
|
||||||
(displayValue, TextDirectionHeuristicsCompat.LTR);
|
(displayValue, TextDirectionHeuristicsCompat.LTR);
|
||||||
// Set the value as the summary and let the superclass populate the views
|
|
||||||
setSummary(phoneNumber);
|
|
||||||
super.onBindView(view);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onBindDialogView(final View view) {
|
public void setText(final String text) {
|
||||||
super.onBindDialogView(view);
|
String newText = text;
|
||||||
|
if (mDefaultPhoneNumber != null) {
|
||||||
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();
|
|
||||||
final PhoneUtils phoneUtils = PhoneUtils.get(mSubId);
|
final PhoneUtils phoneUtils = PhoneUtils.get(mSubId);
|
||||||
final String phoneNumber = phoneUtils.getCanonicalBySystemLocale(value);
|
final String phoneNumber = phoneUtils.getCanonicalBySystemLocale(text);
|
||||||
final String defaultPhoneNumber = phoneUtils.getCanonicalBySystemLocale(
|
final String defaultPhoneNumber = phoneUtils.getCanonicalBySystemLocale(
|
||||||
mDefaultPhoneNumber);
|
mDefaultPhoneNumber);
|
||||||
|
|
||||||
// If the new value is the default, clear the preference.
|
// If the new value is the default, clear the preference.
|
||||||
if (phoneNumber.equals(defaultPhoneNumber)) {
|
if (phoneNumber.equals(defaultPhoneNumber)) {
|
||||||
setText("");
|
newText = "";
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
super.onDialogClosed(positiveResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
super.setText(newText);
|
||||||
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();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,12 +17,8 @@
|
|||||||
|
|
||||||
package com.android.messaging.ui.appsettings;
|
package com.android.messaging.ui.appsettings;
|
||||||
|
|
||||||
import android.app.Fragment;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.core.app.NavUtils;
|
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
@@ -32,6 +28,11 @@ import android.widget.ArrayAdapter;
|
|||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
import android.widget.TextView;
|
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.R;
|
||||||
import com.android.messaging.datamodel.DataModel;
|
import com.android.messaging.datamodel.DataModel;
|
||||||
import com.android.messaging.datamodel.binding.Binding;
|
import com.android.messaging.datamodel.binding.Binding;
|
||||||
@@ -66,7 +67,7 @@ public class SettingsActivity extends BugleActionBarActivity {
|
|||||||
UIIntents.get().launchApplicationSettingsActivity(this, true /* topLevel */);
|
UIIntents.get().launchApplicationSettingsActivity(this, true /* topLevel */);
|
||||||
finish();
|
finish();
|
||||||
} else {
|
} else {
|
||||||
getFragmentManager().beginTransaction()
|
getSupportFragmentManager().beginTransaction()
|
||||||
.replace(android.R.id.content, new SettingsFragment())
|
.replace(android.R.id.content, new SettingsFragment())
|
||||||
.commit();
|
.commit();
|
||||||
}
|
}
|
||||||
@@ -91,7 +92,7 @@ public class SettingsActivity extends BugleActionBarActivity {
|
|||||||
public void onCreate(final Bundle savedInstanceState) {
|
public void onCreate(final Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
mBinding.bind(DataModel.get().createSettingsData(getActivity(), this));
|
mBinding.bind(DataModel.get().createSettingsData(getActivity(), this));
|
||||||
mBinding.getData().init(getLoaderManager(), mBinding);
|
mBinding.getData().init(LoaderManager.getInstance(this), mBinding);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2015 The Android Open Source Project
|
* Copyright (C) 2015 The Android Open Source Project
|
||||||
|
* Copyright (C) 2024 The LineageOS Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -16,9 +17,13 @@
|
|||||||
|
|
||||||
package com.android.messaging.ui.attachmentchooser;
|
package com.android.messaging.ui.attachmentchooser;
|
||||||
|
|
||||||
import android.app.Fragment;
|
|
||||||
import android.os.Bundle;
|
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.R;
|
||||||
import com.android.messaging.ui.BugleActionBarActivity;
|
import com.android.messaging.ui.BugleActionBarActivity;
|
||||||
import com.android.messaging.ui.UIIntents;
|
import com.android.messaging.ui.UIIntents;
|
||||||
@@ -26,17 +31,19 @@ import com.android.messaging.ui.attachmentchooser.AttachmentChooserFragment.Atta
|
|||||||
import com.android.messaging.util.Assert;
|
import com.android.messaging.util.Assert;
|
||||||
|
|
||||||
public class AttachmentChooserActivity extends BugleActionBarActivity implements
|
public class AttachmentChooserActivity extends BugleActionBarActivity implements
|
||||||
AttachmentChooserFragmentHost {
|
AttachmentChooserFragmentHost, FragmentOnAttachListener {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(final Bundle savedInstanceState) {
|
protected void onCreate(final Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
getSupportFragmentManager().addFragmentOnAttachListener(this);
|
||||||
setContentView(R.layout.attachment_chooser_activity);
|
setContentView(R.layout.attachment_chooser_activity);
|
||||||
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
|
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttachFragment(final Fragment fragment) {
|
public void onAttachFragment(@NonNull FragmentManager fragmentManager,
|
||||||
|
@NonNull Fragment fragment) {
|
||||||
if (fragment instanceof AttachmentChooserFragment) {
|
if (fragment instanceof AttachmentChooserFragment) {
|
||||||
final String conversationId =
|
final String conversationId =
|
||||||
getIntent().getStringExtra(UIIntents.UI_INTENT_EXTRA_CONVERSATION_ID);
|
getIntent().getStringExtra(UIIntents.UI_INTENT_EXTRA_CONVERSATION_ID);
|
||||||
@@ -53,4 +60,5 @@ public class AttachmentChooserActivity extends BugleActionBarActivity implements
|
|||||||
setResult(RESULT_OK);
|
setResult(RESULT_OK);
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,14 +16,10 @@
|
|||||||
*/
|
*/
|
||||||
package com.android.messaging.ui.attachmentchooser;
|
package com.android.messaging.ui.attachmentchooser;
|
||||||
|
|
||||||
import android.app.Fragment;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.appcompat.app.ActionBar;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
@@ -32,6 +28,10 @@ import android.view.View;
|
|||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.ArrayAdapter;
|
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.R;
|
||||||
import com.android.messaging.datamodel.DataModel;
|
import com.android.messaging.datamodel.DataModel;
|
||||||
import com.android.messaging.datamodel.MessagingContentProvider;
|
import com.android.messaging.datamodel.MessagingContentProvider;
|
||||||
@@ -80,7 +80,7 @@ public class AttachmentChooserFragment extends Fragment implements DraftMessageD
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
|
||||||
super.onCreateOptionsMenu(menu, inflater);
|
super.onCreateOptionsMenu(menu, inflater);
|
||||||
inflater.inflate(R.menu.attachment_chooser_menu, menu);
|
inflater.inflate(R.menu.attachment_chooser_menu, menu);
|
||||||
}
|
}
|
||||||
@@ -158,7 +158,7 @@ public class AttachmentChooserFragment extends Fragment implements DraftMessageD
|
|||||||
|
|
||||||
class AttachmentGridAdapter extends ArrayAdapter<MessagePartData> {
|
class AttachmentGridAdapter extends ArrayAdapter<MessagePartData> {
|
||||||
public AttachmentGridAdapter(final Context context) {
|
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) {
|
public void onAttachmentsLoaded(final List<MessagePartData> attachments) {
|
||||||
|
|||||||
@@ -18,13 +18,9 @@
|
|||||||
package com.android.messaging.ui.contact;
|
package com.android.messaging.ui.contact;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.Fragment;
|
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.os.Bundle;
|
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.Editable;
|
||||||
import android.text.InputType;
|
import android.text.InputType;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
@@ -39,6 +35,14 @@ import android.view.MenuItem;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
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.R;
|
||||||
import com.android.messaging.datamodel.DataModel;
|
import com.android.messaging.datamodel.DataModel;
|
||||||
import com.android.messaging.datamodel.action.ActionMonitor;
|
import com.android.messaging.datamodel.action.ActionMonitor;
|
||||||
@@ -129,7 +133,7 @@ public class ContactPickerFragment extends Fragment implements ContactPickerData
|
|||||||
|
|
||||||
if (ContactUtil.hasReadContactsPermission()) {
|
if (ContactUtil.hasReadContactsPermission()) {
|
||||||
mBinding.bind(DataModel.get().createContactPickerData(getActivity(), this));
|
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;
|
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
|
@Override
|
||||||
public void onActivityCreated(final Bundle savedInstanceState) {
|
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||||
super.onActivityCreated(savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
Assert.isTrue(mContactPickingMode != MODE_UNDEFINED);
|
Assert.isTrue(mContactPickingMode != MODE_UNDEFINED);
|
||||||
updateVisualsForContactPickingMode(false /* animate */);
|
updateVisualsForContactPickingMode(false /* animate */);
|
||||||
mHost.invalidateActionBar();
|
mHost.invalidateActionBar();
|
||||||
|
|||||||
@@ -17,17 +17,17 @@
|
|||||||
|
|
||||||
package com.android.messaging.ui.conversation;
|
package com.android.messaging.ui.conversation;
|
||||||
|
|
||||||
import android.app.FragmentManager;
|
|
||||||
import android.app.FragmentTransaction;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.text.TextUtils;
|
||||||
|
import android.view.MenuItem;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.appcompat.app.ActionBar;
|
import androidx.appcompat.app.ActionBar;
|
||||||
import android.text.TextUtils;
|
import androidx.fragment.app.FragmentManager;
|
||||||
import android.view.MenuItem;
|
import androidx.fragment.app.FragmentTransaction;
|
||||||
|
|
||||||
import com.android.messaging.R;
|
import com.android.messaging.R;
|
||||||
import com.android.messaging.datamodel.MessagingContentProvider;
|
import com.android.messaging.datamodel.MessagingContentProvider;
|
||||||
@@ -227,12 +227,12 @@ public class ConversationActivity extends BugleActionBarActivity
|
|||||||
}
|
}
|
||||||
|
|
||||||
private ContactPickerFragment getContactPicker() {
|
private ContactPickerFragment getContactPicker() {
|
||||||
return (ContactPickerFragment) getFragmentManager().findFragmentByTag(
|
return (ContactPickerFragment) getSupportFragmentManager().findFragmentByTag(
|
||||||
ContactPickerFragment.FRAGMENT_TAG);
|
ContactPickerFragment.FRAGMENT_TAG);
|
||||||
}
|
}
|
||||||
|
|
||||||
private ConversationFragment getConversationFragment() {
|
private ConversationFragment getConversationFragment() {
|
||||||
return (ConversationFragment) getFragmentManager().findFragmentByTag(
|
return (ConversationFragment) getSupportFragmentManager().findFragmentByTag(
|
||||||
ConversationFragment.FRAGMENT_TAG);
|
ConversationFragment.FRAGMENT_TAG);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -296,7 +296,7 @@ public class ConversationActivity extends BugleActionBarActivity
|
|||||||
final Intent intent = getIntent();
|
final Intent intent = getIntent();
|
||||||
final String conversationId = mUiState.getConversationId();
|
final String conversationId = mUiState.getConversationId();
|
||||||
|
|
||||||
final FragmentManager fragmentManager = getFragmentManager();
|
final FragmentManager fragmentManager = getSupportFragmentManager();
|
||||||
final FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
|
final FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
|
||||||
|
|
||||||
final boolean needConversationFragment = mUiState.shouldShowConversationFragment();
|
final boolean needConversationFragment = mUiState.shouldShowConversationFragment();
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ import android.view.ViewGroupOverlay;
|
|||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
|
||||||
import com.android.messaging.R;
|
import com.android.messaging.R;
|
||||||
import com.android.messaging.datamodel.data.ConversationMessageData;
|
import com.android.messaging.datamodel.data.ConversationMessageData;
|
||||||
import com.android.messaging.ui.ConversationDrawables;
|
import com.android.messaging.ui.ConversationDrawables;
|
||||||
|
|||||||
@@ -19,11 +19,7 @@ package com.android.messaging.ui.conversation;
|
|||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.app.DownloadManager;
|
import android.app.DownloadManager;
|
||||||
import android.app.Fragment;
|
|
||||||
import android.app.FragmentManager;
|
|
||||||
import android.app.FragmentTransaction;
|
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.ClipData;
|
import android.content.ClipData;
|
||||||
import android.content.ClipboardManager;
|
import android.content.ClipboardManager;
|
||||||
@@ -40,16 +36,6 @@ import android.os.Bundle;
|
|||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Parcelable;
|
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.telephony.PhoneNumberUtils;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.view.ActionMode;
|
import android.view.ActionMode;
|
||||||
@@ -63,6 +49,21 @@ import android.view.ViewConfiguration;
|
|||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.TextView;
|
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.R;
|
||||||
import com.android.messaging.datamodel.DataModel;
|
import com.android.messaging.datamodel.DataModel;
|
||||||
import com.android.messaging.datamodel.MessagingContentProvider;
|
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.
|
// Delay showing the message list until the participant list is loaded.
|
||||||
mRecyclerView.setVisibility(View.INVISIBLE);
|
mRecyclerView.setVisibility(View.INVISIBLE);
|
||||||
mBinding.ensureBound();
|
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
|
// Build the input manager with all its required dependencies and pass it along to the
|
||||||
// compose message view.
|
// compose message view.
|
||||||
@@ -678,7 +679,7 @@ public class ConversationFragment extends Fragment implements ConversationDataLi
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSaveInstanceState(final Bundle outState) {
|
public void onSaveInstanceState(@NonNull final Bundle outState) {
|
||||||
super.onSaveInstanceState(outState);
|
super.onSaveInstanceState(outState);
|
||||||
if (mListState != null) {
|
if (mListState != null) {
|
||||||
outState.putParcelable(SAVED_INSTANCE_STATE_LIST_VIEW_STATE_KEY, mListState);
|
outState.putParcelable(SAVED_INSTANCE_STATE_LIST_VIEW_STATE_KEY, mListState);
|
||||||
@@ -722,7 +723,8 @@ public class ConversationFragment extends Fragment implements ConversationDataLi
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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) {
|
if (mHost.getActionMode() != null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -979,7 +981,7 @@ public class ConversationFragment extends Fragment implements ConversationDataLi
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onConfigurationChanged(final Configuration newConfig) {
|
public void onConfigurationChanged(@NonNull final Configuration newConfig) {
|
||||||
super.onConfigurationChanged(newConfig);
|
super.onConfigurationChanged(newConfig);
|
||||||
mRecyclerView.getItemAnimator().endAnimations();
|
mRecyclerView.getItemAnimator().endAnimations();
|
||||||
}
|
}
|
||||||
@@ -1178,7 +1180,7 @@ public class ConversationFragment extends Fragment implements ConversationDataLi
|
|||||||
ImeUtil.hideSoftInput(getActivity(), mComposeMessageView);
|
ImeUtil.hideSoftInput(getActivity(), mComposeMessageView);
|
||||||
}
|
}
|
||||||
|
|
||||||
final FragmentTransaction ft = getActivity().getFragmentManager().beginTransaction();
|
final FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
|
||||||
final EnterSelfPhoneNumberDialog dialog = EnterSelfPhoneNumberDialog
|
final EnterSelfPhoneNumberDialog dialog = EnterSelfPhoneNumberDialog
|
||||||
.newInstance(getConversationSelfSubId());
|
.newInstance(getConversationSelfSubId());
|
||||||
dialog.setTargetFragment(this, 0/*requestCode*/);
|
dialog.setTargetFragment(this, 0/*requestCode*/);
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2015 The Android Open Source Project
|
* Copyright (C) 2015 The Android Open Source Project
|
||||||
|
* Copyright (C) 2024 The LineageOS Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -15,12 +16,13 @@
|
|||||||
*/
|
*/
|
||||||
package com.android.messaging.ui.conversation;
|
package com.android.messaging.ui.conversation;
|
||||||
|
|
||||||
import android.app.FragmentManager;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import androidx.appcompat.app.ActionBar;
|
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
|
|
||||||
|
import androidx.appcompat.app.ActionBar;
|
||||||
|
import androidx.fragment.app.FragmentManager;
|
||||||
|
|
||||||
import com.android.messaging.R;
|
import com.android.messaging.R;
|
||||||
import com.android.messaging.datamodel.binding.BindingBase;
|
import com.android.messaging.datamodel.binding.BindingBase;
|
||||||
import com.android.messaging.datamodel.binding.ImmutableBindingRef;
|
import com.android.messaging.datamodel.binding.ImmutableBindingRef;
|
||||||
|
|||||||
@@ -16,15 +16,17 @@
|
|||||||
*/
|
*/
|
||||||
package com.android.messaging.ui.conversation;
|
package com.android.messaging.ui.conversation;
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.app.DialogFragment;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.widget.EditText;
|
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.R;
|
||||||
import com.android.messaging.datamodel.ParticipantRefresh;
|
import com.android.messaging.datamodel.ParticipantRefresh;
|
||||||
import com.android.messaging.util.BuglePrefs;
|
import com.android.messaging.util.BuglePrefs;
|
||||||
@@ -43,6 +45,7 @@ public class EnterSelfPhoneNumberDialog extends DialogFragment {
|
|||||||
return dialog;
|
return dialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Dialog onCreateDialog(final Bundle savedInstanceState) {
|
public Dialog onCreateDialog(final Bundle savedInstanceState) {
|
||||||
final Context context = getActivity();
|
final Context context = getActivity();
|
||||||
|
|||||||
+3
-15
@@ -18,15 +18,16 @@ package com.android.messaging.ui.conversationlist;
|
|||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.Fragment;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import com.android.messaging.R;
|
import com.android.messaging.R;
|
||||||
import com.android.messaging.datamodel.action.DeleteConversationAction;
|
import com.android.messaging.datamodel.action.DeleteConversationAction;
|
||||||
import com.android.messaging.datamodel.action.UpdateConversationArchiveStatusAction;
|
import com.android.messaging.datamodel.action.UpdateConversationArchiveStatusAction;
|
||||||
@@ -48,8 +49,6 @@ import java.util.ArrayList;
|
|||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base class for many Conversation List activities. This will handle the common actions of multi
|
* Base class for many Conversation List activities. This will handle the common actions of multi
|
||||||
* select and common launching of intents.
|
* select and common launching of intents.
|
||||||
@@ -61,17 +60,6 @@ public abstract class AbstractConversationListActivity extends BugleActionBarAc
|
|||||||
|
|
||||||
protected ConversationListFragment mConversationListFragment;
|
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
|
@Override
|
||||||
public void onBackPressed() {
|
public void onBackPressed() {
|
||||||
// If action mode is active dismiss it
|
// 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.graphics.drawable.ColorDrawable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.view.MenuItem;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.appcompat.app.ActionBar;
|
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;
|
import com.android.messaging.R;
|
||||||
|
|
||||||
public class ArchivedConversationListActivity extends AbstractConversationListActivity {
|
public class ArchivedConversationListActivity extends AbstractConversationListActivity
|
||||||
|
implements FragmentOnAttachListener {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(final Bundle savedInstanceState) {
|
protected void onCreate(final Bundle savedInstanceState) {
|
||||||
@@ -33,7 +37,8 @@ public class ArchivedConversationListActivity extends AbstractConversationListAc
|
|||||||
|
|
||||||
final ConversationListFragment fragment =
|
final ConversationListFragment fragment =
|
||||||
ConversationListFragment.createArchivedConversationListFragment();
|
ConversationListFragment.createArchivedConversationListFragment();
|
||||||
getFragmentManager().beginTransaction().add(android.R.id.content, fragment).commit();
|
getSupportFragmentManager().addFragmentOnAttachListener(this);
|
||||||
|
getSupportFragmentManager().beginTransaction().add(android.R.id.content, fragment).commit();
|
||||||
invalidateActionBar();
|
invalidateActionBar();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,4 +82,13 @@ public class ArchivedConversationListActivity extends AbstractConversationListAc
|
|||||||
public boolean isSwipeAnimatable() {
|
public boolean isSwipeAnimatable() {
|
||||||
return false;
|
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.graphics.drawable.ColorDrawable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.view.Menu;
|
||||||
|
import android.view.MenuItem;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.appcompat.app.ActionBar;
|
import androidx.appcompat.app.ActionBar;
|
||||||
import android.view.Menu;
|
import androidx.fragment.app.Fragment;
|
||||||
import android.view.MenuItem;
|
import androidx.fragment.app.FragmentManager;
|
||||||
|
import androidx.fragment.app.FragmentOnAttachListener;
|
||||||
|
|
||||||
import com.android.messaging.R;
|
import com.android.messaging.R;
|
||||||
import com.android.messaging.ui.UIIntents;
|
import com.android.messaging.ui.UIIntents;
|
||||||
import com.android.messaging.util.Trace;
|
import com.android.messaging.util.Trace;
|
||||||
|
|
||||||
public class ConversationListActivity extends AbstractConversationListActivity {
|
public class ConversationListActivity extends AbstractConversationListActivity implements FragmentOnAttachListener {
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(final Bundle savedInstanceState) {
|
protected void onCreate(final Bundle savedInstanceState) {
|
||||||
Trace.beginSection("ConversationListActivity.onCreate");
|
Trace.beginSection("ConversationListActivity.onCreate");
|
||||||
setTheme(R.style.BugleTheme_ConversationListActivity);
|
setTheme(R.style.BugleTheme_ConversationListActivity);
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
getSupportFragmentManager().addFragmentOnAttachListener(this);
|
||||||
setContentView(R.layout.conversation_list_activity);
|
setContentView(R.layout.conversation_list_activity);
|
||||||
Trace.endSection();
|
Trace.endSection();
|
||||||
invalidateActionBar();
|
invalidateActionBar();
|
||||||
@@ -128,7 +132,7 @@ public class ConversationListActivity extends AbstractConversationListActivity {
|
|||||||
public void onWindowFocusChanged(final boolean hasFocus) {
|
public void onWindowFocusChanged(final boolean hasFocus) {
|
||||||
super.onWindowFocusChanged(hasFocus);
|
super.onWindowFocusChanged(hasFocus);
|
||||||
final ConversationListFragment conversationListFragment =
|
final ConversationListFragment conversationListFragment =
|
||||||
(ConversationListFragment) getFragmentManager().findFragmentById(
|
(ConversationListFragment) getSupportFragmentManager().findFragmentById(
|
||||||
R.id.conversation_list_fragment);
|
R.id.conversation_list_fragment);
|
||||||
// When the screen is turned on, the last used activity gets resumed, but it gets
|
// When the screen is turned on, the last used activity gets resumed, but it gets
|
||||||
// window focus only after the lock screen is unlocked.
|
// window focus only after the lock screen is unlocked.
|
||||||
@@ -136,4 +140,13 @@ public class ConversationListActivity extends AbstractConversationListActivity {
|
|||||||
conversationListFragment.setScrolledToNewestConversationIfNeeded();
|
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;
|
package com.android.messaging.ui.conversationlist;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.Fragment;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Parcelable;
|
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.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
@@ -42,6 +35,14 @@ import android.view.accessibility.AccessibilityManager;
|
|||||||
import android.widget.AbsListView;
|
import android.widget.AbsListView;
|
||||||
import android.widget.ImageView;
|
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.R;
|
||||||
import com.android.messaging.annotation.VisibleForAnimation;
|
import com.android.messaging.annotation.VisibleForAnimation;
|
||||||
import com.android.messaging.datamodel.DataModel;
|
import com.android.messaging.datamodel.DataModel;
|
||||||
@@ -127,7 +128,7 @@ public class ConversationListFragment extends Fragment implements ConversationLi
|
|||||||
@Override
|
@Override
|
||||||
public void onCreate(final Bundle bundle) {
|
public void onCreate(final Bundle bundle) {
|
||||||
super.onCreate(bundle);
|
super.onCreate(bundle);
|
||||||
mListBinding.getData().init(getLoaderManager(), mListBinding);
|
mListBinding.getData().init(LoaderManager.getInstance(this), mListBinding);
|
||||||
mAdapter = new ConversationListAdapter(getActivity(), null, this);
|
mAdapter = new ConversationListAdapter(getActivity(), null, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -244,8 +245,8 @@ public class ConversationListFragment extends Fragment implements ConversationLi
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttach(final Activity activity) {
|
public void onAttach(@NonNull final Context context) {
|
||||||
super.onAttach(activity);
|
super.onAttach(context);
|
||||||
if (VERBOSE) {
|
if (VERBOSE) {
|
||||||
LogUtil.v(LogUtil.BUGLE_TAG, "Attaching List");
|
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);
|
mArchiveMode = arguments.getBoolean(BUNDLE_ARCHIVED_MODE, false);
|
||||||
mForwardMessageMode = arguments.getBoolean(BUNDLE_FORWARD_MESSAGE_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
|
@Override
|
||||||
public void onSaveInstanceState(final Bundle outState) {
|
public void onSaveInstanceState(@NonNull final Bundle outState) {
|
||||||
super.onSaveInstanceState(outState);
|
super.onSaveInstanceState(outState);
|
||||||
if (mListState != null) {
|
if (mListState != null) {
|
||||||
outState.putParcelable(SAVED_INSTANCE_STATE_LIST_VIEW_STATE_KEY, mListState);
|
outState.putParcelable(SAVED_INSTANCE_STATE_LIST_VIEW_STATE_KEY, mListState);
|
||||||
@@ -305,7 +306,7 @@ public class ConversationListFragment extends Fragment implements ConversationLi
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPrepareOptionsMenu(final Menu menu) {
|
public void onPrepareOptionsMenu(@NonNull final Menu menu) {
|
||||||
super.onPrepareOptionsMenu(menu);
|
super.onPrepareOptionsMenu(menu);
|
||||||
final MenuItem startNewConversationMenuItem =
|
final MenuItem startNewConversationMenuItem =
|
||||||
menu.findItem(R.id.action_start_new_conversation);
|
menu.findItem(R.id.action_start_new_conversation);
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2015 The Android Open Source Project
|
* Copyright (C) 2015 The Android Open Source Project
|
||||||
|
* Copyright (C) 2024 The LineageOS Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -16,36 +17,41 @@
|
|||||||
|
|
||||||
package com.android.messaging.ui.conversationlist;
|
package com.android.messaging.ui.conversationlist;
|
||||||
|
|
||||||
import android.app.Fragment;
|
|
||||||
import android.os.Bundle;
|
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.ConversationListData;
|
||||||
import com.android.messaging.datamodel.data.ConversationListItemData;
|
import com.android.messaging.datamodel.data.ConversationListItemData;
|
||||||
import com.android.messaging.datamodel.data.MessageData;
|
import com.android.messaging.datamodel.data.MessageData;
|
||||||
import com.android.messaging.ui.BaseBugleActivity;
|
import com.android.messaging.ui.BaseBugleActivity;
|
||||||
import com.android.messaging.ui.UIIntents;
|
import com.android.messaging.ui.UIIntents;
|
||||||
import com.android.messaging.ui.conversationlist.ConversationListFragment.ConversationListFragmentHost;
|
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
|
* An activity that lets the user forward a SMS/MMS message by picking from a conversation in the
|
||||||
* conversation list.
|
* conversation list.
|
||||||
*/
|
*/
|
||||||
public class ForwardMessageActivity extends BaseBugleActivity
|
public class ForwardMessageActivity extends BaseBugleActivity
|
||||||
implements ConversationListFragmentHost {
|
implements ConversationListFragmentHost, FragmentOnAttachListener {
|
||||||
private MessageData mDraftMessage;
|
private MessageData mDraftMessage;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(final Bundle savedInstanceState) {
|
protected void onCreate(final Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
getSupportFragmentManager().addFragmentOnAttachListener(this);
|
||||||
final ConversationListFragment fragment =
|
final ConversationListFragment fragment =
|
||||||
ConversationListFragment.createForwardMessageConversationListFragment();
|
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);
|
mDraftMessage = getIntent().getParcelableExtra(UIIntents.UI_INTENT_EXTRA_DRAFT_DATA);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttachFragment(final Fragment fragment) {
|
public void onAttachFragment(@NonNull FragmentManager fragmentManager,
|
||||||
|
@NonNull Fragment fragment) {
|
||||||
if (fragment instanceof ConversationListFragment) {
|
if (fragment instanceof ConversationListFragment) {
|
||||||
final ConversationListFragment clf = (ConversationListFragment) fragment;
|
final ConversationListFragment clf = (ConversationListFragment) fragment;
|
||||||
clf.setHost(this);
|
clf.setHost(this);
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2015 The Android Open Source Project
|
* Copyright (C) 2015 The Android Open Source Project
|
||||||
|
* Copyright (C) 2024 The LineageOS Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -16,7 +17,6 @@
|
|||||||
|
|
||||||
package com.android.messaging.ui.conversationlist;
|
package com.android.messaging.ui.conversationlist;
|
||||||
|
|
||||||
import android.app.Fragment;
|
|
||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.media.MediaMetadataRetriever;
|
import android.media.MediaMetadataRetriever;
|
||||||
@@ -24,7 +24,11 @@ import android.net.Uri;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
import androidx.collection.ArrayMap;
|
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.Factory;
|
||||||
import com.android.messaging.datamodel.data.ConversationListItemData;
|
import com.android.messaging.datamodel.data.ConversationListItemData;
|
||||||
@@ -48,7 +52,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class ShareIntentActivity extends BaseBugleActivity implements
|
public class ShareIntentActivity extends BaseBugleActivity implements
|
||||||
ShareIntentFragment.HostInterface {
|
ShareIntentFragment.HostInterface, FragmentOnAttachListener {
|
||||||
|
|
||||||
private MessageData mDraftMessage;
|
private MessageData mDraftMessage;
|
||||||
|
|
||||||
@@ -74,11 +78,13 @@ public class ShareIntentActivity extends BaseBugleActivity implements
|
|||||||
finish();
|
finish();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
new ShareIntentFragment().show(getFragmentManager(), "ShareIntentFragment");
|
getSupportFragmentManager().addFragmentOnAttachListener(this);
|
||||||
|
new ShareIntentFragment().show(getSupportFragmentManager(), "ShareIntentFragment");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttachFragment(final Fragment fragment) {
|
public void onAttachFragment(@NonNull FragmentManager fragmentManager,
|
||||||
|
@NonNull Fragment fragment) {
|
||||||
final Intent intent = getIntent();
|
final Intent intent = getIntent();
|
||||||
final String action = intent.getAction();
|
final String action = intent.getAction();
|
||||||
|
|
||||||
|
|||||||
@@ -20,10 +20,14 @@ import android.app.Activity;
|
|||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.AlertDialog.Builder;
|
import android.app.AlertDialog.Builder;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.app.DialogFragment;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.os.Bundle;
|
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.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
@@ -61,6 +65,7 @@ public class ShareIntentFragment extends DialogFragment implements ConversationL
|
|||||||
/**
|
/**
|
||||||
* {@inheritDoc} from Fragment
|
* {@inheritDoc} from Fragment
|
||||||
*/
|
*/
|
||||||
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Dialog onCreateDialog(final Bundle bundle) {
|
public Dialog onCreateDialog(final Bundle bundle) {
|
||||||
final Activity activity = getActivity();
|
final Activity activity = getActivity();
|
||||||
@@ -79,7 +84,7 @@ public class ShareIntentFragment extends DialogFragment implements ConversationL
|
|||||||
ViewGroup.LayoutParams.WRAP_CONTENT);
|
ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
mListBinding.getData().init(getLoaderManager(), mListBinding);
|
mListBinding.getData().init(LoaderManager.getInstance(this), mListBinding);
|
||||||
mAdapter = new ShareIntentAdapter(activity, null, this);
|
mAdapter = new ShareIntentAdapter(activity, null, this);
|
||||||
mRecyclerView = (RecyclerView) view.findViewById(android.R.id.list);
|
mRecyclerView = (RecyclerView) view.findViewById(android.R.id.list);
|
||||||
mRecyclerView.setLayoutManager(manager);
|
mRecyclerView.setLayoutManager(manager);
|
||||||
@@ -101,7 +106,7 @@ public class ShareIntentFragment extends DialogFragment implements ConversationL
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDismiss(DialogInterface dialog) {
|
public void onDismiss(@NonNull DialogInterface dialog) {
|
||||||
if (!mDismissed) {
|
if (!mDismissed) {
|
||||||
final Activity activity = getActivity();
|
final Activity activity = getActivity();
|
||||||
if (activity != null) {
|
if (activity != null) {
|
||||||
@@ -120,12 +125,12 @@ public class ShareIntentFragment extends DialogFragment implements ConversationL
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttach(final Activity activity) {
|
public void onAttach(@NonNull final Context context) {
|
||||||
super.onAttach(activity);
|
super.onAttach(context);
|
||||||
if (activity instanceof HostInterface) {
|
if (context instanceof HostInterface) {
|
||||||
mHost = (HostInterface) activity;
|
mHost = (HostInterface) context;
|
||||||
}
|
}
|
||||||
mListBinding.bind(DataModel.get().createConversationListData(activity, this, false));
|
mListBinding.bind(DataModel.get().createConversationListData(context, this, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -17,11 +17,11 @@
|
|||||||
|
|
||||||
package com.android.messaging.ui.conversationsettings;
|
package com.android.messaging.ui.conversationsettings;
|
||||||
|
|
||||||
import android.app.Fragment;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
import com.android.messaging.R;
|
import com.android.messaging.R;
|
||||||
import com.android.messaging.ui.BugleActionBarActivity;
|
import com.android.messaging.ui.BugleActionBarActivity;
|
||||||
@@ -42,7 +42,7 @@ public class PeopleAndOptionsActivity extends BugleActionBarActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttachFragment(final Fragment fragment) {
|
public void onAttachFragment(@NonNull final Fragment fragment) {
|
||||||
if (fragment instanceof PeopleAndOptionsFragment) {
|
if (fragment instanceof PeopleAndOptionsFragment) {
|
||||||
final String conversationId =
|
final String conversationId =
|
||||||
getIntent().getStringExtra(UIIntents.UI_INTENT_EXTRA_CONVERSATION_ID);
|
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.Activity;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.Fragment;
|
|
||||||
import android.app.NotificationManager;
|
import android.app.NotificationManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@@ -36,6 +35,8 @@ import android.widget.ListView;
|
|||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.loader.app.LoaderManager;
|
||||||
|
|
||||||
import com.android.messaging.R;
|
import com.android.messaging.R;
|
||||||
import com.android.messaging.datamodel.DataModel;
|
import com.android.messaging.datamodel.DataModel;
|
||||||
@@ -72,7 +73,7 @@ public class PeopleAndOptionsFragment extends Fragment
|
|||||||
@Override
|
@Override
|
||||||
public void onCreate(final Bundle savedInstanceState) {
|
public void onCreate(final Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
mBinding.getData().init(getLoaderManager(), mBinding);
|
mBinding.getData().init(LoaderManager.getInstance(this), mBinding);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2015 The Android Open Source Project
|
* Copyright (C) 2015 The Android Open Source Project
|
||||||
|
* Copyright (C) 2024 The LineageOS Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -15,11 +16,12 @@
|
|||||||
*/
|
*/
|
||||||
package com.android.messaging.ui.mediapicker;
|
package com.android.messaging.ui.mediapicker;
|
||||||
|
|
||||||
import android.app.Fragment;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
import com.android.messaging.Factory;
|
import com.android.messaging.Factory;
|
||||||
import com.android.messaging.datamodel.data.PendingAttachmentData;
|
import com.android.messaging.datamodel.data.PendingAttachmentData;
|
||||||
import com.android.messaging.ui.UIIntents;
|
import com.android.messaging.ui.UIIntents;
|
||||||
|
|||||||
@@ -17,10 +17,8 @@
|
|||||||
|
|
||||||
package com.android.messaging.ui.mediapicker;
|
package com.android.messaging.ui.mediapicker;
|
||||||
|
|
||||||
import android.app.FragmentManager;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import androidx.appcompat.app.ActionBar;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
@@ -28,6 +26,8 @@ import android.view.MenuItem;
|
|||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.ImageButton;
|
import android.widget.ImageButton;
|
||||||
|
|
||||||
|
import androidx.appcompat.app.ActionBar;
|
||||||
|
import androidx.fragment.app.FragmentManager;
|
||||||
import com.android.messaging.R;
|
import com.android.messaging.R;
|
||||||
import com.android.messaging.datamodel.binding.ImmutableBindingRef;
|
import com.android.messaging.datamodel.binding.ImmutableBindingRef;
|
||||||
import com.android.messaging.datamodel.data.MediaPickerData;
|
import com.android.messaging.datamodel.data.MediaPickerData;
|
||||||
|
|||||||
@@ -18,16 +18,10 @@
|
|||||||
package com.android.messaging.ui.mediapicker;
|
package com.android.messaging.ui.mediapicker;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.Fragment;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
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.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
@@ -37,6 +31,13 @@ import android.view.ViewGroup;
|
|||||||
import android.widget.ImageButton;
|
import android.widget.ImageButton;
|
||||||
import android.widget.LinearLayout;
|
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.Factory;
|
||||||
import com.android.messaging.R;
|
import com.android.messaging.R;
|
||||||
import com.android.messaging.datamodel.DataModel;
|
import com.android.messaging.datamodel.DataModel;
|
||||||
@@ -201,7 +202,7 @@ public class MediaPicker extends Fragment implements DraftMessageSubscriptionDat
|
|||||||
@Override
|
@Override
|
||||||
public void onCreate(final Bundle savedInstanceState) {
|
public void onCreate(final Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
mBinding.getData().init(getLoaderManager());
|
mBinding.getData().init(LoaderManager.getInstance(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -441,7 +442,7 @@ public class MediaPicker extends Fragment implements DraftMessageSubscriptionDat
|
|||||||
if (mBinding.isBound() && getActivity() != null) {
|
if (mBinding.isBound() && getActivity() != null) {
|
||||||
mBinding.unbind();
|
mBinding.unbind();
|
||||||
mBinding.bind(DataModel.get().createMediaPickerData(getActivity()));
|
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
|
@Override
|
||||||
public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) {
|
public void onCreateOptionsMenu(@NonNull final Menu menu,
|
||||||
|
@NonNull final MenuInflater inflater) {
|
||||||
if (mSelectedChooser != null) {
|
if (mSelectedChooser != null) {
|
||||||
mSelectedChooser.onCreateOptionsMenu(inflater, menu);
|
mSelectedChooser.onCreateOptionsMenu(inflater, menu);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2015 The Android Open Source Project
|
* Copyright (C) 2015 The Android Open Source Project
|
||||||
|
* Copyright (C) 2024 The LineageOS Project
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -17,11 +18,12 @@
|
|||||||
package com.android.messaging.util;
|
package com.android.messaging.util;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.Fragment;
|
|
||||||
import android.content.ActivityNotFoundException;
|
import android.content.ActivityNotFoundException;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
import com.android.messaging.R;
|
import com.android.messaging.R;
|
||||||
import com.android.messaging.ui.SnackBar;
|
import com.android.messaging.ui.SnackBar;
|
||||||
import com.android.messaging.ui.UIIntents;
|
import com.android.messaging.ui.UIIntents;
|
||||||
|
|||||||
Reference in New Issue
Block a user