Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/printing/PrintShareActivity.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/printing/PrintShareActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/printing/PrintShareActivity.java |
| index 243cf45b931d1ad8286fc20631dea9f80c3f3697..f7a223aa3f930d8ff4fdd553aebf02c334575c2e 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/printing/PrintShareActivity.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/printing/PrintShareActivity.java |
| @@ -10,13 +10,10 @@ import android.content.Intent; |
| import android.content.pm.PackageManager; |
| import android.os.AsyncTask; |
| import android.os.Bundle; |
| -import android.os.StrictMode; |
| import android.support.v7.app.AppCompatActivity; |
| -import org.chromium.base.ActivityState; |
| import org.chromium.base.ApplicationStatus; |
| import org.chromium.base.ApplicationStatus.ActivityStateListener; |
| -import org.chromium.base.Log; |
| import org.chromium.base.ThreadUtils; |
| import org.chromium.chrome.R; |
| import org.chromium.chrome.browser.ChromeActivity; |
| @@ -28,7 +25,6 @@ import java.util.Collections; |
| import java.util.HashSet; |
| import java.util.List; |
| import java.util.Set; |
| -import java.util.concurrent.ExecutionException; |
| /** |
| * A simple activity that allows Chrome to expose print as an option in the share menu. |
| @@ -42,61 +38,6 @@ public class PrintShareActivity extends AppCompatActivity { |
| private static ActivityStateListener sStateListener; |
| private static AsyncTask<Void, Void, Void> sStateChangeTask; |
| - /** |
| - * Enable the print sharing option. |
| - * |
| - * @param activity The activity that will be triggering the share action. The activitiy's |
| - * state will be tracked to disable the print option when the share operation |
| - * has been completed. |
| - * @param callback The callback to be triggered after the print option has been enabled. This |
| - * may or may not be synchronous depending on whether this will require |
| - * interacting with the Android framework. |
| - */ |
| - public static void enablePrintShareOption(final Activity activity, final Runnable callback) { |
| - ThreadUtils.assertOnUiThread(); |
| - |
| - if (sStateListener == null) { |
| - sStateListener = new ActivityStateListener() { |
| - @Override |
| - public void onActivityStateChange(Activity activity, int newState) { |
| - if (newState == ActivityState.PAUSED) return; |
| - unregisterActivity(activity); |
| - } |
| - }; |
| - } |
| - ApplicationStatus.registerStateListenerForAllActivities(sStateListener); |
| - boolean wasEmpty = sPendingShareActivities.isEmpty(); |
| - sPendingShareActivities.add(activity); |
| - |
| - waitForPendingStateChangeTask(); |
| - if (wasEmpty) { |
| - sStateChangeTask = new AsyncTask<Void, Void, Void>() { |
| - @Override |
| - protected Void doInBackground(Void... params) { |
| - if (sPendingShareActivities.isEmpty()) return null; |
| - |
| - activity.getPackageManager().setComponentEnabledSetting( |
| - new ComponentName(activity, PrintShareActivity.class), |
| - PackageManager.COMPONENT_ENABLED_STATE_ENABLED, |
| - PackageManager.DONT_KILL_APP); |
| - return null; |
| - } |
| - |
| - @Override |
| - protected void onPostExecute(Void result) { |
| - if (sStateChangeTask == this) { |
| - sStateChangeTask = null; |
| - } else { |
| - waitForPendingStateChangeTask(); |
| - } |
| - callback.run(); |
| - } |
| - }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); |
| - } else { |
| - callback.run(); |
| - } |
| - } |
| - |
| private static void unregisterActivity(final Activity activity) { |
|
cco3
2017/01/31 01:32:57
This should probably also be moved.
|
| ThreadUtils.assertOnUiThread(); |
| @@ -104,7 +45,7 @@ public class PrintShareActivity extends AppCompatActivity { |
| if (!sPendingShareActivities.isEmpty()) return; |
| ApplicationStatus.unregisterActivityStateListener(sStateListener); |
| - waitForPendingStateChangeTask(); |
| + ShareHelper.waitForPendingStateChangeTask(); |
| sStateChangeTask = new AsyncTask<Void, Void, Void>() { |
| @Override |
| protected Void doInBackground(Void... params) { |
| @@ -124,26 +65,6 @@ public class PrintShareActivity extends AppCompatActivity { |
| }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); |
| } |
| - /** |
| - * Waits for any pending state change operations to be completed. |
| - * |
| - * This will avoid timing issues described here: crbug.com/649453. |
| - */ |
| - private static void waitForPendingStateChangeTask() { |
| - ThreadUtils.assertOnUiThread(); |
| - |
| - if (sStateChangeTask == null) return; |
| - StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads(); |
| - try { |
| - sStateChangeTask.get(); |
| - sStateChangeTask = null; |
| - } catch (InterruptedException | ExecutionException e) { |
| - Log.e(TAG, "Print state change task did not complete as expected"); |
| - } finally { |
| - StrictMode.setThreadPolicy(oldPolicy); |
| - } |
| - } |
| - |
| @Override |
| protected void onCreate(Bundle savedInstanceState) { |
| super.onCreate(savedInstanceState); |
| @@ -180,5 +101,4 @@ public class PrintShareActivity extends AppCompatActivity { |
| unregisterActivity(triggeringActivity); |
|
mattreynolds
2017/01/31 18:59:31
ShareHelper.unregisterActivity?
|
| triggeringActivity.onMenuOrKeyboardAction(R.id.print_id, true); |
| } |
| - |
| } |