Loading src/com/android/settings/network/telephony/AbstractMobileNetworkSettings.java +0 −1 Original line number Diff line number Diff line Loading @@ -132,7 +132,6 @@ abstract class AbstractMobileNetworkSettings extends RestrictedDashboardFragment final TelephonyStatusControlSession session = setTelephonyAvailabilityStatus(controllers); final PreferenceScreen screen = getPreferenceScreen(); controllers.forEach(controller -> { controller.displayPreference(screen); Loading src/com/android/settings/network/telephony/TelephonyStatusControlSession.java +18 −18 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import com.android.settings.core.BasePreferenceController; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.utils.ThreadUtils; import java.util.ArrayList; import java.util.Collection; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; Loading @@ -37,7 +38,7 @@ public class TelephonyStatusControlSession implements AutoCloseable { private static final String LOG_TAG = "TelephonyStatusControlSS"; private Collection<AbstractPreferenceController> mControllers; private Future<Boolean> mResult; private Collection<Future<Boolean>> mResult = new ArrayList<>(); /** * Buider of session Loading Loading @@ -67,9 +68,9 @@ public class TelephonyStatusControlSession implements AutoCloseable { private TelephonyStatusControlSession(Collection<AbstractPreferenceController> controllers) { mControllers = controllers; mResult = ThreadUtils.postOnBackgroundThread(() -> setupAvailabilityStatus(controllers) ); controllers.forEach(prefCtrl -> mResult .add(ThreadUtils.postOnBackgroundThread(() -> setupAvailabilityStatus(prefCtrl)))); } /** Loading @@ -79,25 +80,24 @@ public class TelephonyStatusControlSession implements AutoCloseable { */ public void close() { //check the background thread is finished then unset the status of availability. for (Future<Boolean> result : mResult) { try { mResult.get(); result.get(); } catch (ExecutionException | InterruptedException exception) { Log.e(LOG_TAG, "setup availability status failed!", exception); } } unsetAvailabilityStatus(mControllers); } private Boolean setupAvailabilityStatus( Collection<AbstractPreferenceController> controllerLists) { private Boolean setupAvailabilityStatus(AbstractPreferenceController controller) { try { controllerLists.stream() .filter(controller -> controller instanceof TelephonyAvailabilityHandler) .map(TelephonyAvailabilityHandler.class::cast) .forEach(controller -> { if (controller instanceof TelephonyAvailabilityHandler) { int status = ((BasePreferenceController) controller) .getAvailabilityStatus(); controller.setAvailabilityStatus(status); }); ((TelephonyAvailabilityHandler) controller).setAvailabilityStatus(status); } return true; } catch (Exception exception) { Log.e(LOG_TAG, "Setup availability status failed!", exception); Loading Loading
src/com/android/settings/network/telephony/AbstractMobileNetworkSettings.java +0 −1 Original line number Diff line number Diff line Loading @@ -132,7 +132,6 @@ abstract class AbstractMobileNetworkSettings extends RestrictedDashboardFragment final TelephonyStatusControlSession session = setTelephonyAvailabilityStatus(controllers); final PreferenceScreen screen = getPreferenceScreen(); controllers.forEach(controller -> { controller.displayPreference(screen); Loading
src/com/android/settings/network/telephony/TelephonyStatusControlSession.java +18 −18 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import com.android.settings.core.BasePreferenceController; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.utils.ThreadUtils; import java.util.ArrayList; import java.util.Collection; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; Loading @@ -37,7 +38,7 @@ public class TelephonyStatusControlSession implements AutoCloseable { private static final String LOG_TAG = "TelephonyStatusControlSS"; private Collection<AbstractPreferenceController> mControllers; private Future<Boolean> mResult; private Collection<Future<Boolean>> mResult = new ArrayList<>(); /** * Buider of session Loading Loading @@ -67,9 +68,9 @@ public class TelephonyStatusControlSession implements AutoCloseable { private TelephonyStatusControlSession(Collection<AbstractPreferenceController> controllers) { mControllers = controllers; mResult = ThreadUtils.postOnBackgroundThread(() -> setupAvailabilityStatus(controllers) ); controllers.forEach(prefCtrl -> mResult .add(ThreadUtils.postOnBackgroundThread(() -> setupAvailabilityStatus(prefCtrl)))); } /** Loading @@ -79,25 +80,24 @@ public class TelephonyStatusControlSession implements AutoCloseable { */ public void close() { //check the background thread is finished then unset the status of availability. for (Future<Boolean> result : mResult) { try { mResult.get(); result.get(); } catch (ExecutionException | InterruptedException exception) { Log.e(LOG_TAG, "setup availability status failed!", exception); } } unsetAvailabilityStatus(mControllers); } private Boolean setupAvailabilityStatus( Collection<AbstractPreferenceController> controllerLists) { private Boolean setupAvailabilityStatus(AbstractPreferenceController controller) { try { controllerLists.stream() .filter(controller -> controller instanceof TelephonyAvailabilityHandler) .map(TelephonyAvailabilityHandler.class::cast) .forEach(controller -> { if (controller instanceof TelephonyAvailabilityHandler) { int status = ((BasePreferenceController) controller) .getAvailabilityStatus(); controller.setAvailabilityStatus(status); }); ((TelephonyAvailabilityHandler) controller).setAvailabilityStatus(status); } return true; } catch (Exception exception) { Log.e(LOG_TAG, "Setup availability status failed!", exception); Loading