Loading packages/SystemUI/src/com/android/systemui/qs/customize/QSCustomizer.java +4 −2 Original line number Diff line number Diff line Loading @@ -90,7 +90,8 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene public QSCustomizer(Context context, AttributeSet attrs, LightBarController lightBarController, KeyguardStateController keyguardStateController, ScreenLifecycle screenLifecycle) { ScreenLifecycle screenLifecycle, TileQueryHelper tileQueryHelper) { super(new ContextThemeWrapper(context, R.style.edit_theme), attrs); LayoutInflater.from(getContext()).inflate(R.layout.qs_customize_panel_content, this); Loading @@ -113,7 +114,8 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene mRecyclerView = findViewById(android.R.id.list); mTransparentView = findViewById(R.id.customizer_transparent_view); mTileAdapter = new TileAdapter(getContext()); mTileQueryHelper = new TileQueryHelper(context, mTileAdapter); mTileQueryHelper = tileQueryHelper; mTileQueryHelper.setListener(mTileAdapter); mRecyclerView.setAdapter(mTileAdapter); mTileAdapter.getItemTouchHelper().attachToRecyclerView(mRecyclerView); GridLayoutManager layout = new GridLayoutManager(getContext(), 3); Loading packages/SystemUI/src/com/android/systemui/qs/customize/TileQueryHelper.java +16 −6 Original line number Diff line number Diff line Loading @@ -33,8 +33,9 @@ import android.text.TextUtils; import android.util.ArraySet; import android.widget.Button; import com.android.systemui.Dependency; import com.android.systemui.R; import com.android.systemui.dagger.qualifiers.BgHandler; import com.android.systemui.dagger.qualifiers.MainHandler; import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.qs.QSTile.State; import com.android.systemui.qs.QSTileHost; Loading @@ -47,6 +48,8 @@ import java.util.Arrays; import java.util.Collection; import java.util.List; import javax.inject.Inject; public class TileQueryHelper { private static final String TAG = "TileQueryHelper"; Loading @@ -55,15 +58,20 @@ public class TileQueryHelper { private final Handler mBgHandler; private final Handler mMainHandler; private final Context mContext; private final TileStateListener mListener; private TileStateListener mListener; private boolean mFinished; public TileQueryHelper(Context context, TileStateListener listener) { @Inject public TileQueryHelper(Context context, @MainHandler Handler mainHandler, @BgHandler Handler bgHandler) { mContext = context; mMainHandler = mainHandler; mBgHandler = bgHandler; } public void setListener(TileStateListener listener) { mListener = listener; mBgHandler = new Handler(Dependency.get(Dependency.BG_LOOPER)); mMainHandler = Dependency.get(Dependency.MAIN_HANDLER); } public void queryTiles(QSTileHost host) { Loading Loading @@ -178,7 +186,9 @@ public class TileQueryHelper { private void notifyTilesChanged(final boolean finished) { final ArrayList<TileInfo> tilesToReturn = new ArrayList<>(mTiles); mMainHandler.post(() -> { if (mListener != null) { mListener.onTilesChanged(tilesToReturn); } mFinished = finished; }); } Loading packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileQueryHelperTest.java +14 −10 Original line number Diff line number Diff line Loading @@ -36,6 +36,8 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; import android.os.Handler; import android.os.Looper; import android.provider.Settings; import android.service.quicksettings.Tile; import android.testing.AndroidTestingRunner; Loading @@ -46,7 +48,6 @@ import android.util.ArraySet; import androidx.test.filters.SmallTest; import com.android.systemui.Dependency; import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import com.android.systemui.plugins.qs.QSTile; Loading Loading @@ -99,12 +100,12 @@ public class TileQueryHelperTest extends SysuiTestCase { private QSTile.State mState; private TestableLooper mBGLooper; private TileQueryHelper mTileQueryHelper; private Handler mMainHandler; @Before public void setup() { MockitoAnnotations.initMocks(this); mBGLooper = TestableLooper.get(this); mDependency.injectTestDependency(Dependency.BG_LOOPER, mBGLooper.getLooper()); mContext.setMockPackageManager(mPackageManager); mState = new QSTile.State(); Loading @@ -122,7 +123,10 @@ public class TileQueryHelperTest extends SysuiTestCase { } ).when(mQSTileHost).createTile(anyString()); mTileQueryHelper = new TileQueryHelper(mContext, mListener); mMainHandler = new Handler(Looper.getMainLooper()); mTileQueryHelper = new TileQueryHelper(mContext, mMainHandler, new Handler(mBGLooper.getLooper())); mTileQueryHelper.setListener(mListener); } @Test Loading @@ -135,7 +139,7 @@ public class TileQueryHelperTest extends SysuiTestCase { mTileQueryHelper.queryTiles(mQSTileHost); mBGLooper.processAllMessages(); waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER)); waitForIdleSync(mMainHandler); assertTrue(mTileQueryHelper.isFinished()); } Loading @@ -145,7 +149,7 @@ public class TileQueryHelperTest extends SysuiTestCase { mTileQueryHelper.queryTiles(mQSTileHost); mBGLooper.processAllMessages(); waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER)); waitForIdleSync(mMainHandler); verify(mListener, times(2)).onTilesChanged(any()); } Loading @@ -160,7 +164,7 @@ public class TileQueryHelperTest extends SysuiTestCase { mTileQueryHelper.queryTiles(mQSTileHost); mBGLooper.processAllMessages(); waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER)); waitForIdleSync(mMainHandler); assertTrue(mTileQueryHelper.isFinished()); } Loading @@ -175,7 +179,7 @@ public class TileQueryHelperTest extends SysuiTestCase { mTileQueryHelper.queryTiles(mQSTileHost); mBGLooper.processAllMessages(); waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER)); waitForIdleSync(mMainHandler); verify(mListener, atLeastOnce()).onTilesChanged(mCaptor.capture()); List<String> specs = new ArrayList<>(); Loading @@ -196,7 +200,7 @@ public class TileQueryHelperTest extends SysuiTestCase { mTileQueryHelper.queryTiles(mQSTileHost); mBGLooper.processAllMessages(); waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER)); waitForIdleSync(mMainHandler); verify(mListener, atLeastOnce()).onTilesChanged(mCaptor.capture()); List<String> specs = new ArrayList<>(); Loading @@ -217,7 +221,7 @@ public class TileQueryHelperTest extends SysuiTestCase { mTileQueryHelper.queryTiles(mQSTileHost); mBGLooper.processAllMessages(); waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER)); waitForIdleSync(mMainHandler); verify(mListener, atLeastOnce()).onTilesChanged(mCaptor.capture()); List<String> specs = new ArrayList<>(); Loading Loading @@ -248,7 +252,7 @@ public class TileQueryHelperTest extends SysuiTestCase { mTileQueryHelper.queryTiles(mQSTileHost); mBGLooper.processAllMessages(); waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER)); waitForIdleSync(mMainHandler); verify(mListener, atLeastOnce()).onTilesChanged(mCaptor.capture()); List<TileQueryHelper.TileInfo> tileInfos = mCaptor.getValue(); Loading Loading
packages/SystemUI/src/com/android/systemui/qs/customize/QSCustomizer.java +4 −2 Original line number Diff line number Diff line Loading @@ -90,7 +90,8 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene public QSCustomizer(Context context, AttributeSet attrs, LightBarController lightBarController, KeyguardStateController keyguardStateController, ScreenLifecycle screenLifecycle) { ScreenLifecycle screenLifecycle, TileQueryHelper tileQueryHelper) { super(new ContextThemeWrapper(context, R.style.edit_theme), attrs); LayoutInflater.from(getContext()).inflate(R.layout.qs_customize_panel_content, this); Loading @@ -113,7 +114,8 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene mRecyclerView = findViewById(android.R.id.list); mTransparentView = findViewById(R.id.customizer_transparent_view); mTileAdapter = new TileAdapter(getContext()); mTileQueryHelper = new TileQueryHelper(context, mTileAdapter); mTileQueryHelper = tileQueryHelper; mTileQueryHelper.setListener(mTileAdapter); mRecyclerView.setAdapter(mTileAdapter); mTileAdapter.getItemTouchHelper().attachToRecyclerView(mRecyclerView); GridLayoutManager layout = new GridLayoutManager(getContext(), 3); Loading
packages/SystemUI/src/com/android/systemui/qs/customize/TileQueryHelper.java +16 −6 Original line number Diff line number Diff line Loading @@ -33,8 +33,9 @@ import android.text.TextUtils; import android.util.ArraySet; import android.widget.Button; import com.android.systemui.Dependency; import com.android.systemui.R; import com.android.systemui.dagger.qualifiers.BgHandler; import com.android.systemui.dagger.qualifiers.MainHandler; import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.qs.QSTile.State; import com.android.systemui.qs.QSTileHost; Loading @@ -47,6 +48,8 @@ import java.util.Arrays; import java.util.Collection; import java.util.List; import javax.inject.Inject; public class TileQueryHelper { private static final String TAG = "TileQueryHelper"; Loading @@ -55,15 +58,20 @@ public class TileQueryHelper { private final Handler mBgHandler; private final Handler mMainHandler; private final Context mContext; private final TileStateListener mListener; private TileStateListener mListener; private boolean mFinished; public TileQueryHelper(Context context, TileStateListener listener) { @Inject public TileQueryHelper(Context context, @MainHandler Handler mainHandler, @BgHandler Handler bgHandler) { mContext = context; mMainHandler = mainHandler; mBgHandler = bgHandler; } public void setListener(TileStateListener listener) { mListener = listener; mBgHandler = new Handler(Dependency.get(Dependency.BG_LOOPER)); mMainHandler = Dependency.get(Dependency.MAIN_HANDLER); } public void queryTiles(QSTileHost host) { Loading Loading @@ -178,7 +186,9 @@ public class TileQueryHelper { private void notifyTilesChanged(final boolean finished) { final ArrayList<TileInfo> tilesToReturn = new ArrayList<>(mTiles); mMainHandler.post(() -> { if (mListener != null) { mListener.onTilesChanged(tilesToReturn); } mFinished = finished; }); } Loading
packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileQueryHelperTest.java +14 −10 Original line number Diff line number Diff line Loading @@ -36,6 +36,8 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; import android.os.Handler; import android.os.Looper; import android.provider.Settings; import android.service.quicksettings.Tile; import android.testing.AndroidTestingRunner; Loading @@ -46,7 +48,6 @@ import android.util.ArraySet; import androidx.test.filters.SmallTest; import com.android.systemui.Dependency; import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import com.android.systemui.plugins.qs.QSTile; Loading Loading @@ -99,12 +100,12 @@ public class TileQueryHelperTest extends SysuiTestCase { private QSTile.State mState; private TestableLooper mBGLooper; private TileQueryHelper mTileQueryHelper; private Handler mMainHandler; @Before public void setup() { MockitoAnnotations.initMocks(this); mBGLooper = TestableLooper.get(this); mDependency.injectTestDependency(Dependency.BG_LOOPER, mBGLooper.getLooper()); mContext.setMockPackageManager(mPackageManager); mState = new QSTile.State(); Loading @@ -122,7 +123,10 @@ public class TileQueryHelperTest extends SysuiTestCase { } ).when(mQSTileHost).createTile(anyString()); mTileQueryHelper = new TileQueryHelper(mContext, mListener); mMainHandler = new Handler(Looper.getMainLooper()); mTileQueryHelper = new TileQueryHelper(mContext, mMainHandler, new Handler(mBGLooper.getLooper())); mTileQueryHelper.setListener(mListener); } @Test Loading @@ -135,7 +139,7 @@ public class TileQueryHelperTest extends SysuiTestCase { mTileQueryHelper.queryTiles(mQSTileHost); mBGLooper.processAllMessages(); waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER)); waitForIdleSync(mMainHandler); assertTrue(mTileQueryHelper.isFinished()); } Loading @@ -145,7 +149,7 @@ public class TileQueryHelperTest extends SysuiTestCase { mTileQueryHelper.queryTiles(mQSTileHost); mBGLooper.processAllMessages(); waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER)); waitForIdleSync(mMainHandler); verify(mListener, times(2)).onTilesChanged(any()); } Loading @@ -160,7 +164,7 @@ public class TileQueryHelperTest extends SysuiTestCase { mTileQueryHelper.queryTiles(mQSTileHost); mBGLooper.processAllMessages(); waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER)); waitForIdleSync(mMainHandler); assertTrue(mTileQueryHelper.isFinished()); } Loading @@ -175,7 +179,7 @@ public class TileQueryHelperTest extends SysuiTestCase { mTileQueryHelper.queryTiles(mQSTileHost); mBGLooper.processAllMessages(); waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER)); waitForIdleSync(mMainHandler); verify(mListener, atLeastOnce()).onTilesChanged(mCaptor.capture()); List<String> specs = new ArrayList<>(); Loading @@ -196,7 +200,7 @@ public class TileQueryHelperTest extends SysuiTestCase { mTileQueryHelper.queryTiles(mQSTileHost); mBGLooper.processAllMessages(); waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER)); waitForIdleSync(mMainHandler); verify(mListener, atLeastOnce()).onTilesChanged(mCaptor.capture()); List<String> specs = new ArrayList<>(); Loading @@ -217,7 +221,7 @@ public class TileQueryHelperTest extends SysuiTestCase { mTileQueryHelper.queryTiles(mQSTileHost); mBGLooper.processAllMessages(); waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER)); waitForIdleSync(mMainHandler); verify(mListener, atLeastOnce()).onTilesChanged(mCaptor.capture()); List<String> specs = new ArrayList<>(); Loading Loading @@ -248,7 +252,7 @@ public class TileQueryHelperTest extends SysuiTestCase { mTileQueryHelper.queryTiles(mQSTileHost); mBGLooper.processAllMessages(); waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER)); waitForIdleSync(mMainHandler); verify(mListener, atLeastOnce()).onTilesChanged(mCaptor.capture()); List<TileQueryHelper.TileInfo> tileInfos = mCaptor.getValue(); Loading