Commit 12faa15c authored by Kyle Milka's avatar Kyle Milka Committed by Commit Bot

Rename/refactor ShareActivity

Rename ShareActivity to ChromeAccessorActivity. Refactor the class
so it pulls off the needed objects from ChromeAcivity and child
classes don't need to depend on ChromeActivity.

Eventually the share/ code won't need to depend on this class and
instead on a generic Activity.

Bug: 1022172
Change-Id: I23b6ca9c1947d201aa5667e292fa0711b59ef920
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2238518
Commit-Queue: Kyle Milka <kmilka@chromium.org>
Reviewed-by: default avatarDavid Trainor <dtrainor@chromium.org>
Cr-Commit-Position: refs/heads/master@{#779488}
parent 1c1cab23
......@@ -12,6 +12,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/ApplicationLifetime.java",
"java/src/org/chromium/chrome/browser/AssistStatusHandler.java",
"java/src/org/chromium/chrome/browser/BrowserRestartActivity.java",
"java/src/org/chromium/chrome/browser/ChromeAccessorActivity.java",
"java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java",
"java/src/org/chromium/chrome/browser/ChromeActivity.java",
"java/src/org/chromium/chrome/browser/ChromeActivitySessionTracker.java",
......@@ -1403,7 +1404,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/share/ChromeShareExtras.java",
"java/src/org/chromium/chrome/browser/share/LensUtils.java",
"java/src/org/chromium/chrome/browser/share/OptionalShareTargetsManager.java",
"java/src/org/chromium/chrome/browser/share/ShareActivity.java",
"java/src/org/chromium/chrome/browser/share/ShareButtonController.java",
"java/src/org/chromium/chrome/browser/share/ShareDelegate.java",
"java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java",
......
......@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.share;
package org.chromium.chrome.browser;
import android.app.Activity;
import android.content.Intent;
......@@ -12,14 +12,14 @@ import androidx.appcompat.app.AppCompatActivity;
import org.chromium.base.ApplicationStatus;
import org.chromium.base.IntentUtils;
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.share.ShareHelper;
/**
* {@code ShareActivity} is the base class for share options, which
* {@code ChromeActivityAccessor} is the base class for share options, which
* are activities that are shown in the share chooser. Activities subclassing
* ShareActivity override featureIsEnabled, and handleShareAction.
* ChromeAccessorActivity override handleAction.
*/
public abstract class ShareActivity extends AppCompatActivity {
public abstract class ChromeAccessorActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
......@@ -33,7 +33,7 @@ public abstract class ShareActivity extends AppCompatActivity {
ChromeActivity triggeringActivity = getTriggeringActivity();
if (triggeringActivity == null) return;
handleShareAction(triggeringActivity);
handleAction(triggeringActivity);
} finally {
finish();
}
......@@ -58,5 +58,5 @@ public abstract class ShareActivity extends AppCompatActivity {
* Override this activity to implement desired share functionality. The activity
* will be destroyed immediately after this method is called.
*/
protected abstract void handleShareAction(ChromeActivity triggeringActivity);
protected abstract void handleAction(ChromeActivity triggeringActivity);
}
......@@ -5,10 +5,10 @@
package org.chromium.chrome.browser.printing;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeAccessorActivity;
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.preferences.Pref;
import org.chromium.chrome.browser.preferences.PrefServiceBridge;
import org.chromium.chrome.browser.share.ShareActivity;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.printing.PrintingController;
import org.chromium.printing.PrintingControllerImpl;
......@@ -16,9 +16,9 @@ import org.chromium.printing.PrintingControllerImpl;
/**
* A simple activity that allows Chrome to expose print as an option in the share menu.
*/
public class PrintShareActivity extends ShareActivity {
public class PrintShareActivity extends ChromeAccessorActivity {
@Override
protected void handleShareAction(ChromeActivity triggeringActivity) {
protected void handleAction(ChromeActivity triggeringActivity) {
triggeringActivity.onMenuOrKeyboardAction(R.id.print_id, true);
}
......
......@@ -8,8 +8,8 @@ import android.content.Context;
import androidx.annotation.VisibleForTesting;
import org.chromium.chrome.browser.ChromeAccessorActivity;
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.share.ShareActivity;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.widget.bottomsheet.BottomSheetController;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetContent;
......@@ -19,11 +19,11 @@ import org.chromium.content_public.browser.WebContents;
/**
* A simple activity that allows Chrome to expose send tab to self as an option in the share menu.
*/
public class SendTabToSelfShareActivity extends ShareActivity {
public class SendTabToSelfShareActivity extends ChromeAccessorActivity {
private static BottomSheetContent sBottomSheetContentForTesting;
@Override
protected void handleShareAction(ChromeActivity triggeringActivity) {
protected void handleAction(ChromeActivity triggeringActivity) {
Tab tab = triggeringActivity.getActivityTabProvider().get();
if (tab == null) return;
NavigationEntry entry = tab.getWebContents().getNavigationController().getVisibleEntry();
......
......@@ -71,7 +71,7 @@ public class OptionalShareTargetsManager {
* interacting with the Android framework.
*/
public void enableOptionalShareActivities(final Activity triggeringActivity,
final List<Class<? extends ShareActivity>> enabledClasses, final Runnable callback) {
final List<Class<? extends Activity>> enabledClasses, final Runnable callback) {
ThreadUtils.assertOnUiThread();
ApplicationStatus.registerStateListenerForAllActivities(mStateListener);
......
......@@ -22,7 +22,6 @@ import org.chromium.chrome.browser.preferences.PrefServiceBridge;
import org.chromium.chrome.browser.printing.PrintShareActivity;
import org.chromium.chrome.browser.printing.TabPrinter;
import org.chromium.chrome.browser.send_tab_to_self.SendTabToSelfShareActivity;
import org.chromium.chrome.browser.share.qrcode.QrCodeShareActivity;
import org.chromium.chrome.browser.share.share_sheet.ShareSheetCoordinator;
import org.chromium.chrome.browser.share.share_sheet.ShareSheetPropertyModelBuilder;
import org.chromium.chrome.browser.tab.SadTab;
......@@ -101,7 +100,7 @@ public class ShareDelegateImpl implements ShareDelegate {
Activity activity, Tab currentTab, boolean shareDirectly, boolean isIncognito) {
if (currentTab == null) return;
List<Class<? extends ShareActivity>> classesToEnable = new ArrayList<>(2);
List<Class<? extends Activity>> classesToEnable = new ArrayList<>(2);
if (PrintShareActivity.featureIsAvailable(currentTab)) {
classesToEnable.add(PrintShareActivity.class);
......@@ -111,10 +110,6 @@ public class ShareDelegateImpl implements ShareDelegate {
classesToEnable.add(SendTabToSelfShareActivity.class);
}
if (QrCodeShareActivity.featureIsAvailable()) {
classesToEnable.add(QrCodeShareActivity.class);
}
if (!classesToEnable.isEmpty()) {
OptionalShareTargetsManager.getInstance().enableOptionalShareActivities(activity,
classesToEnable, () -> triggerShare(currentTab, shareDirectly, isIncognito));
......
......@@ -99,7 +99,7 @@ public class SendTabToSelfShareActivityTest {
SendTabToSelfShareActivity shareActivity = new SendTabToSelfShareActivity();
SendTabToSelfShareActivity.setBottomSheetContentForTesting(mBottomSheetContent);
shareActivity.handleShareAction(mChromeActivity);
shareActivity.handleAction(mChromeActivity);
verify(mBottomSheetController).requestShowContent(any(BottomSheetContent.class), eq(true));
}
}
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.share.qrcode;
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.share.ShareActivity;
/**
* A simple activity that shows sharing QR code option in share menu.
*/
public class QrCodeShareActivity extends ShareActivity {
@Override
protected void handleShareAction(ChromeActivity triggeringActivity) {
QrCodeCoordinator qrCodeCoordinator = new QrCodeCoordinator(triggeringActivity);
qrCodeCoordinator.show();
}
public static boolean featureIsAvailable() {
return ChromeFeatureList.isEnabled(ChromeFeatureList.SHARING_QR_CODE_ANDROID);
}
}
\ No newline at end of file
......@@ -13,7 +13,6 @@ share_java_sources = [
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/QrCodeDialog.java",
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/QrCodeDialogTab.java",
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/QrCodePageAdapter.java",
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/QrCodeShareActivity.java",
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/TabLayoutPageListener.java",
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/scan_tab/CameraPreview.java",
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/scan_tab/CameraPreviewOverlay.java",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment