Skip to content

Commit

Permalink
Do not set defaultSkinManager for all UI widgets
Browse files Browse the repository at this point in the history
  • Loading branch information
cgspine committed Apr 1, 2020
1 parent 34e3fc0 commit 37db993
Show file tree
Hide file tree
Showing 16 changed files with 57 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
new QMUISkinLayoutInflaterFactory(this, layoutInflater));
}
super.onCreate(savedInstanceState);
mSkinManager = QMUISkinManager.defaultInstance(this);
}

void convertToTranslucentCauseOrientationChanged() {
Expand Down Expand Up @@ -85,6 +84,9 @@ public void onConfigurationChanged(Configuration newConfig) {
}
}

public QMUISkinManager getSkinManager() {
return mSkinManager;
}

@Override
protected void onStart() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -592,7 +592,7 @@ public void changeSkin(int index) {
if (item == null) {
mSkinChangeListeners.remove(i);
} else {
item.onSkinChange(oldIndex, mCurrentSkin);
item.onSkinChange(this, oldIndex, mCurrentSkin);
}
}
}
Expand Down Expand Up @@ -629,7 +629,7 @@ public int getCurrentSkin() {
}

public interface OnSkinChangeListener {
void onSkinChange(int oldSkin, int newSkin);
void onSkinChange(QMUISkinManager skinManager, int oldSkin, int newSkin);
}

class ViewSkinCurrent{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ public abstract class QMUIBottomSheetBaseBuilder<T extends QMUIBottomSheetBaseBu

public QMUIBottomSheetBaseBuilder(Context context) {
mContext = context;
mSkinManager = QMUISkinManager.defaultInstance(context);
}

@SuppressWarnings("unchecked")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,6 @@ public static void setOnProvideDefaultTheme(OnProvideDefaultTheme onProvideDefau

public QMUIDialogBuilder(Context context) {
this.mContext = context;
mSkinManager = QMUISkinManager.defaultInstance(context);
}

public Context getBaseContext() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,6 @@ public static class Builder {

public Builder(Context context) {
mContext = context;
mSkinManager = QMUISkinManager.defaultInstance(context);
}

/**
Expand Down Expand Up @@ -244,7 +243,6 @@ public static class CustomBuilder {

public CustomBuilder(Context context) {
mContext = context;
mSkinManager = QMUISkinManager.defaultInstance(context);
}

public CustomBuilder setSkinManager(@Nullable QMUISkinManager skinManager) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,9 @@ public abstract class QMUIBasePopup<T extends QMUIBasePopup> {
private QMUISkinManager mSkinManager;
private QMUISkinManager.OnSkinChangeListener mOnSkinChangeListener = new QMUISkinManager.OnSkinChangeListener() {
@Override
public void onSkinChange(int oldSkin, int newSkin) {
public void onSkinChange(QMUISkinManager skinManager, int oldSkin, int newSkin) {
if (mDimAmountAttr != 0) {
Resources.Theme theme = QMUISkinManager.defaultInstance(mContext).getTheme(newSkin);
Resources.Theme theme = skinManager.getTheme(newSkin);
mDimAmount = QMUIResHelper.getAttrFloatValue(theme, mDimAmountAttr);
updateDimAmount(mDimAmount);
QMUIBasePopup.this.onSkinChange(oldSkin, newSkin);
Expand Down Expand Up @@ -87,7 +87,6 @@ public boolean onTouch(View v, MotionEvent event) {

public QMUIBasePopup(Context context) {
mContext = context;
mSkinManager = QMUISkinManager.defaultInstance(context);
mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
mWindow = new PopupWindow(context);
initWindow();
Expand Down
18 changes: 15 additions & 3 deletions qmuidemo/src/main/java/com/qmuiteam/qmuidemo/QDMainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ public class QDMainActivity extends BaseFragmentActivity {

private QMUISkinManager.OnSkinChangeListener mOnSkinChangeListener = new QMUISkinManager.OnSkinChangeListener() {
@Override
public void onSkinChange(int oldSkin, int newSkin) {
public void onSkinChange(QMUISkinManager skinManager, int oldSkin, int newSkin) {
if (newSkin == QDSkinManager.SKIN_WHITE) {
QMUIStatusBarHelper.setStatusBarLightMode(QDMainActivity.this);
} else {
Expand All @@ -108,6 +108,12 @@ public void onSkinChange(int oldSkin, int newSkin) {
}
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setSkinManager(QMUISkinManager.defaultInstance(this));
}

@Override
protected RootView onCreateRootView(int fragmentContainerId) {
return new CustomRootView(this, fragmentContainerId);
Expand All @@ -132,7 +138,9 @@ private void renderSkinMakerBtn() {
@Override
protected void onStart() {
super.onStart();
QMUISkinManager.defaultInstance(this).addSkinChangeListener(mOnSkinChangeListener);
if(getSkinManager() != null){
getSkinManager().addSkinChangeListener(mOnSkinChangeListener);
}
}

@Override
Expand All @@ -144,7 +152,9 @@ protected void onResume() {
@Override
protected void onStop() {
super.onStop();
QMUISkinManager.defaultInstance(this).removeSkinChangeListener(mOnSkinChangeListener);
if(getSkinManager() != null){
getSkinManager().removeSkinChangeListener(mOnSkinChangeListener);
}
}

private void showGlobalActionPopup(View v){
Expand All @@ -171,6 +181,7 @@ public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.setSkinManager(QMUISkinManager.defaultInstance(QDMainActivity.this))
.create()
.show();
}else if(i == 1){
Expand All @@ -194,6 +205,7 @@ public void onClick(DialogInterface dialog, int which) {
.shadow(true)
.edgeProtection(QMUIDisplayHelper.dp2px(this, 10))
.offsetYIfTop(QMUIDisplayHelper.dp2px(this, 5))
.skinManager(QMUISkinManager.defaultInstance(this))
.show(v);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import android.widget.ProgressBar;
import android.widget.ZoomButtonsController;

import com.qmuiteam.qmui.skin.QMUISkinManager;
import com.qmuiteam.qmui.util.QMUILangHelper;
import com.qmuiteam.qmui.util.QMUIResHelper;
import com.qmuiteam.qmui.widget.QMUITopBarLayout;
Expand Down Expand Up @@ -156,6 +157,7 @@ public void onClick(QMUIDialog dialog, int index) {
popBackStack();
}
})
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.show();
} else {
doDownload(url);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import android.widget.ListView;
import android.widget.Toast;

import com.qmuiteam.qmui.skin.QMUISkinManager;
import com.qmuiteam.qmui.widget.QMUITopBarLayout;
import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
import com.qmuiteam.qmuidemo.R;
Expand Down Expand Up @@ -155,6 +156,7 @@ private void showSimpleBottomSheetList(boolean gravityCenter,
boolean withMark) {
QMUIBottomSheet.BottomListSheetBuilder builder = new QMUIBottomSheet.BottomListSheetBuilder(getActivity());
builder.setGravityCenter(gravityCenter)
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.setTitle(title)
.setAddCancelBtn(addCancelBtn)
.setAllowDrag(allowDragDismiss)
Expand Down Expand Up @@ -193,6 +195,7 @@ private void showSimpleBottomSheetGrid() {
.addItem(R.mipmap.icon_more_operation_share_chat, "分享到私信", TAG_SHARE_CHAT, QMUIBottomSheet.BottomGridSheetBuilder.FIRST_LINE)
.addItem(R.mipmap.icon_more_operation_save, "保存到本地", TAG_SHARE_LOCAL, QMUIBottomSheet.BottomGridSheetBuilder.SECOND_LINE)
.setAddCancelBtn(true)
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.setOnSheetItemClickListener(new QMUIBottomSheet.BottomGridSheetBuilder.OnSheetItemClickListener() {
@Override
public void onClick(QMUIBottomSheet dialog, View itemView) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import android.widget.TextView;
import android.widget.Toast;

import com.qmuiteam.qmui.skin.QMUISkinManager;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.util.QMUIKeyboardHelper;
import com.qmuiteam.qmui.util.QMUIResHelper;
Expand Down Expand Up @@ -161,6 +162,7 @@ private void showMessagePositiveDialog() {
new QMUIDialog.MessageDialogBuilder(getActivity())
.setTitle("标题")
.setMessage("确定要发送吗?")
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.addAction("取消", new QMUIDialogAction.ActionListener() {
@Override
public void onClick(QMUIDialog dialog, int index) {
Expand All @@ -181,6 +183,7 @@ private void showMessageNegativeDialog() {
new QMUIDialog.MessageDialogBuilder(getActivity())
.setTitle("标题")
.setMessage("确定要删除吗?")
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.addAction("取消", new QMUIDialogAction.ActionListener() {
@Override
public void onClick(QMUIDialog dialog, int index) {
Expand All @@ -200,6 +203,7 @@ public void onClick(QMUIDialog dialog, int index) {
private void showLongMessageDialog() {
new QMUIDialog.MessageDialogBuilder(getActivity())
.setTitle("标题")
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.setMessage("这是一段很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长" +
"很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很" +
"很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很" +
Expand All @@ -225,6 +229,7 @@ private void showConfirmMessageDialog() {
.setTitle("退出后是否删除账号信息?")
.setMessage("删除账号信息")
.setChecked(true)
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.addAction("取消", new QMUIDialogAction.ActionListener() {
@Override
public void onClick(QMUIDialog dialog, int index) {
Expand All @@ -243,6 +248,7 @@ public void onClick(QMUIDialog dialog, int index) {
private void showMenuDialog() {
final String[] items = new String[]{"选项1", "选项2", "选项3"};
new QMUIDialog.MenuDialogBuilder(getActivity())
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.addItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Expand All @@ -258,6 +264,7 @@ private void showSingleChoiceDialog() {
final int checkedIndex = 1;
new QMUIDialog.CheckableDialogBuilder(getActivity())
.setCheckedIndex(checkedIndex)
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.addItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Expand All @@ -272,6 +279,7 @@ private void showMultiChoiceDialog() {
final String[] items = new String[]{"选项1", "选项2", "选项3", "选项4", "选项5", "选项6"};
final QMUIDialog.MultiCheckableDialogBuilder builder = new QMUIDialog.MultiCheckableDialogBuilder(getActivity())
.setCheckedItems(new int[]{1, 3})
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.addItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Expand Down Expand Up @@ -306,6 +314,7 @@ private void showNumerousMultiChoiceDialog() {
};
final QMUIDialog.MultiCheckableDialogBuilder builder = new QMUIDialog.MultiCheckableDialogBuilder(getActivity())
.setCheckedItems(new int[]{1, 3})
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.addItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Expand Down Expand Up @@ -335,6 +344,7 @@ public void onClick(QMUIDialog dialog, int index) {
private void showEditTextDialog() {
final QMUIDialog.EditTextDialogBuilder builder = new QMUIDialog.EditTextDialogBuilder(getActivity());
builder.setTitle("标题")
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.setPlaceholder("在此输入您的昵称")
.setInputType(InputType.TYPE_CLASS_TEXT)
.addAction("取消", new QMUIDialogAction.ActionListener() {
Expand All @@ -360,6 +370,7 @@ public void onClick(QMUIDialog dialog, int index) {

private void showAutoDialog() {
QMAutoTestDialogBuilder autoTestDialogBuilder = (QMAutoTestDialogBuilder) new QMAutoTestDialogBuilder(getActivity())
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.addAction("取消", new QMUIDialogAction.ActionListener() {
@Override
public void onClick(QMUIDialog dialog, int index) {
Expand Down Expand Up @@ -422,6 +433,7 @@ private void showBottomSheet() {
new QMUIBottomSheet.BottomListSheetBuilder(getContext())
.addItem("使用 QMUI 默认 Dialog 样式")
.addItem("自定义样式")
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
@Override
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import com.qmuiteam.qmui.arch.annotation.LatestVisitRecord;
import com.qmuiteam.qmui.layout.QMUIFrameLayout;
import com.qmuiteam.qmui.skin.QMUISkinHelper;
import com.qmuiteam.qmui.skin.QMUISkinManager;
import com.qmuiteam.qmui.skin.QMUISkinValueBuilder;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.util.QMUIResHelper;
Expand Down Expand Up @@ -84,6 +85,7 @@ void onClickBtn1(View v) {
mNormalPopup = QMUIPopups.popup(getContext(), QMUIDisplayHelper.dp2px(getContext(), 250))
.preferredDirection(QMUIPopup.DIRECTION_BOTTOM)
.view(textView)
.skinManager(QMUISkinManager.defaultInstance(getContext()))
.edgeProtection(QMUIDisplayHelper.dp2px(getContext(), 20))
.offsetX(QMUIDisplayHelper.dp2px(getContext(), 20))
.offsetYIfBottom(QMUIDisplayHelper.dp2px(getContext(), 5))
Expand Down Expand Up @@ -134,6 +136,7 @@ public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
.preferredDirection(QMUIPopup.DIRECTION_TOP)
.shadow(true)
.offsetYIfTop(QMUIDisplayHelper.dp2px(getContext(), 5))
.skinManager(QMUISkinManager.defaultInstance(getContext()))
.onDismiss(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
Expand Down Expand Up @@ -162,6 +165,7 @@ void onClickBtn3(View v) {
.edgeProtection(QMUIDisplayHelper.dp2px(getContext(), 20))
.dimAmount(0.6f)
.animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
.skinManager(QMUISkinManager.defaultInstance(getContext()))
.onDismiss(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
Expand All @@ -184,6 +188,7 @@ void onClickBtn4(View v) {
.view(textView)
.edgeProtection(QMUIDisplayHelper.dp2px(getContext(), 20))
.dimAmount(0.6f)
.skinManager(QMUISkinManager.defaultInstance(getContext()))
.animStyle(QMUIPopup.ANIM_GROW_FROM_CENTER)
.onDismiss(new PopupWindow.OnDismissListener() {
@Override
Expand Down Expand Up @@ -236,6 +241,7 @@ void onClickBtn5(View v) {
QMUIPopups.fullScreenPopup(getContext())
.addView(frameLayout)
.closeBtn(true)
.skinManager(QMUISkinManager.defaultInstance(getContext()))
.onBlankClick(new QMUIFullScreenPopup.OnBlankClickListener() {
@Override
public void onBlankClick(QMUIFullScreenPopup popup) {
Expand Down Expand Up @@ -322,6 +328,7 @@ void onClickBtn6(View v) {
QMUIPopups.fullScreenPopup(getContext())
.addView(frameLayout, QMUIFullScreenPopup.getOffsetHalfKeyboardHeightListener())
.addView(editFitSystemWindowWrapped, eLp, QMUIFullScreenPopup.getOffsetKeyboardHeightListener())
.skinManager(QMUISkinManager.defaultInstance(getContext()))
.onBlankClick(new QMUIFullScreenPopup.OnBlankClickListener() {
@Override
public void onBlankClick(QMUIFullScreenPopup popup) {
Expand All @@ -344,6 +351,7 @@ void onClickBtn7(View v) {
QMUIDisplayHelper.dp2px(getContext(), 56),
QMUIDisplayHelper.dp2px(getContext(), 56))
.shadow(true)
.skinManager(QMUISkinManager.defaultInstance(getContext()))
.edgeProtection(QMUIDisplayHelper.dp2px(getContext(), 20))
.addAction(new QMUIQuickAction.Action().icon(R.drawable.icon_quick_action_copy).text("复制").onClick(
new QMUIQuickAction.OnClickListener() {
Expand Down Expand Up @@ -381,6 +389,7 @@ void onClickBtn8(View v) {
QMUIDisplayHelper.dp2px(getContext(), 56),
QMUIDisplayHelper.dp2px(getContext(), 56))
.shadow(true)
.skinManager(QMUISkinManager.defaultInstance(getContext()))
.edgeProtection(QMUIDisplayHelper.dp2px(getContext(), 20))
.addAction(new QMUIQuickAction.Action().icon(R.drawable.icon_quick_action_copy).text("复制").onClick(
new QMUIQuickAction.OnClickListener() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import android.webkit.WebChromeClient;
import android.widget.Toast;

import com.qmuiteam.qmui.skin.QMUISkinManager;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
Expand Down Expand Up @@ -68,6 +69,7 @@ public void onClick(QMUIDialog dialog, int index) {
dialog.dismiss();
}
}))
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.show();
}
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import android.view.View;
import android.webkit.WebChromeClient;

import com.qmuiteam.qmui.skin.QMUISkinManager;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
Expand Down Expand Up @@ -61,6 +62,7 @@ public void onClick(QMUIDialog dialog, int index) {
dialog.dismiss();
}
}))
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.show();
}
});
Expand Down
Loading

0 comments on commit 37db993

Please sign in to comment.