Do not set defaultSkinManager for all UI widgets

This commit is contained in:
cgspine
2020-04-01 20:21:46 +08:00
parent 34e3fc0cfd
commit 37db99332b
16 changed files with 57 additions and 13 deletions
@@ -52,7 +52,6 @@ class InnerBaseActivity extends AppCompatActivity implements LatestVisitArgument
new QMUISkinLayoutInflaterFactory(this, layoutInflater));
}
super.onCreate(savedInstanceState);
mSkinManager = QMUISkinManager.defaultInstance(this);
}
void convertToTranslucentCauseOrientationChanged() {
@@ -85,6 +84,9 @@ class InnerBaseActivity extends AppCompatActivity implements LatestVisitArgument
}
}
public QMUISkinManager getSkinManager() {
return mSkinManager;
}
@Override
protected void onStart() {
@@ -592,7 +592,7 @@ public final class QMUISkinManager {
if (item == null) {
mSkinChangeListeners.remove(i);
} else {
item.onSkinChange(oldIndex, mCurrentSkin);
item.onSkinChange(this, oldIndex, mCurrentSkin);
}
}
}
@@ -629,7 +629,7 @@ public final class QMUISkinManager {
}
public interface OnSkinChangeListener {
void onSkinChange(int oldSkin, int newSkin);
void onSkinChange(QMUISkinManager skinManager, int oldSkin, int newSkin);
}
class ViewSkinCurrent{
@@ -48,7 +48,6 @@ public abstract class QMUIBottomSheetBaseBuilder<T extends QMUIBottomSheetBaseBu
public QMUIBottomSheetBaseBuilder(Context context) {
mContext = context;
mSkinManager = QMUISkinManager.defaultInstance(context);
}
@SuppressWarnings("unchecked")
@@ -106,7 +106,6 @@ public abstract class QMUIDialogBuilder<T extends QMUIDialogBuilder> {
public QMUIDialogBuilder(Context context) {
this.mContext = context;
mSkinManager = QMUISkinManager.defaultInstance(context);
}
public Context getBaseContext() {
@@ -113,7 +113,6 @@ public class QMUITipDialog extends QMUIBaseDialog {
public Builder(Context context) {
mContext = context;
mSkinManager = QMUISkinManager.defaultInstance(context);
}
/**
@@ -244,7 +243,6 @@ public class QMUITipDialog extends QMUIBaseDialog {
public CustomBuilder(Context context) {
mContext = context;
mSkinManager = QMUISkinManager.defaultInstance(context);
}
public CustomBuilder setSkinManager(@Nullable QMUISkinManager skinManager) {
@@ -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);
@@ -87,7 +87,6 @@ public abstract class QMUIBasePopup<T extends QMUIBasePopup> {
public QMUIBasePopup(Context context) {
mContext = context;
mSkinManager = QMUISkinManager.defaultInstance(context);
mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
mWindow = new PopupWindow(context);
initWindow();
@@ -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 {
@@ -108,6 +108,12 @@ public class QDMainActivity extends BaseFragmentActivity {
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setSkinManager(QMUISkinManager.defaultInstance(this));
}
@Override
protected RootView onCreateRootView(int fragmentContainerId) {
return new CustomRootView(this, fragmentContainerId);
@@ -132,7 +138,9 @@ public class QDMainActivity extends BaseFragmentActivity {
@Override
protected void onStart() {
super.onStart();
QMUISkinManager.defaultInstance(this).addSkinChangeListener(mOnSkinChangeListener);
if(getSkinManager() != null){
getSkinManager().addSkinChangeListener(mOnSkinChangeListener);
}
}
@Override
@@ -144,7 +152,9 @@ public class QDMainActivity extends BaseFragmentActivity {
@Override
protected void onStop() {
super.onStop();
QMUISkinManager.defaultInstance(this).removeSkinChangeListener(mOnSkinChangeListener);
if(getSkinManager() != null){
getSkinManager().removeSkinChangeListener(mOnSkinChangeListener);
}
}
private void showGlobalActionPopup(View v){
@@ -171,6 +181,7 @@ public class QDMainActivity extends BaseFragmentActivity {
dialog.dismiss();
}
})
.setSkinManager(QMUISkinManager.defaultInstance(QDMainActivity.this))
.create()
.show();
}else if(i == 1){
@@ -194,6 +205,7 @@ public class QDMainActivity extends BaseFragmentActivity {
.shadow(true)
.edgeProtection(QMUIDisplayHelper.dp2px(this, 10))
.offsetYIfTop(QMUIDisplayHelper.dp2px(this, 5))
.skinManager(QMUISkinManager.defaultInstance(this))
.show(v);
}
@@ -32,6 +32,7 @@ import android.widget.FrameLayout;
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;
@@ -156,6 +157,7 @@ public class QDWebExplorerFragment extends BaseFragment {
popBackStack();
}
})
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.show();
} else {
doDownload(url);
@@ -23,6 +23,7 @@ import android.widget.ArrayAdapter;
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;
@@ -155,6 +156,7 @@ public class QDBottomSheetFragment extends BaseFragment {
boolean withMark) {
QMUIBottomSheet.BottomListSheetBuilder builder = new QMUIBottomSheet.BottomListSheetBuilder(getActivity());
builder.setGravityCenter(gravityCenter)
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.setTitle(title)
.setAddCancelBtn(addCancelBtn)
.setAllowDrag(allowDragDismiss)
@@ -193,6 +195,7 @@ public class QDBottomSheetFragment extends BaseFragment {
.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) {
@@ -31,6 +31,7 @@ import android.widget.ScrollView;
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;
@@ -161,6 +162,7 @@ public class QDDialogFragment extends BaseFragment {
new QMUIDialog.MessageDialogBuilder(getActivity())
.setTitle("标题")
.setMessage("确定要发送吗?")
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.addAction("取消", new QMUIDialogAction.ActionListener() {
@Override
public void onClick(QMUIDialog dialog, int index) {
@@ -181,6 +183,7 @@ public class QDDialogFragment extends BaseFragment {
new QMUIDialog.MessageDialogBuilder(getActivity())
.setTitle("标题")
.setMessage("确定要删除吗?")
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.addAction("取消", new QMUIDialogAction.ActionListener() {
@Override
public void onClick(QMUIDialog dialog, int index) {
@@ -200,6 +203,7 @@ public class QDDialogFragment extends BaseFragment {
private void showLongMessageDialog() {
new QMUIDialog.MessageDialogBuilder(getActivity())
.setTitle("标题")
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.setMessage("这是一段很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长" +
"很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很" +
"很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很" +
@@ -225,6 +229,7 @@ public class QDDialogFragment extends BaseFragment {
.setTitle("退出后是否删除账号信息?")
.setMessage("删除账号信息")
.setChecked(true)
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.addAction("取消", new QMUIDialogAction.ActionListener() {
@Override
public void onClick(QMUIDialog dialog, int index) {
@@ -243,6 +248,7 @@ public class QDDialogFragment extends BaseFragment {
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) {
@@ -258,6 +264,7 @@ public class QDDialogFragment extends BaseFragment {
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) {
@@ -272,6 +279,7 @@ public class QDDialogFragment extends BaseFragment {
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) {
@@ -306,6 +314,7 @@ public class QDDialogFragment extends BaseFragment {
};
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) {
@@ -335,6 +344,7 @@ public class QDDialogFragment extends BaseFragment {
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() {
@@ -360,6 +370,7 @@ public class QDDialogFragment extends BaseFragment {
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) {
@@ -422,6 +433,7 @@ public class QDDialogFragment extends BaseFragment {
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) {
@@ -31,6 +31,7 @@ import android.widget.Toast;
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;
@@ -84,6 +85,7 @@ public class QDPopupFragment extends BaseFragment {
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))
@@ -134,6 +136,7 @@ public class QDPopupFragment extends BaseFragment {
.preferredDirection(QMUIPopup.DIRECTION_TOP)
.shadow(true)
.offsetYIfTop(QMUIDisplayHelper.dp2px(getContext(), 5))
.skinManager(QMUISkinManager.defaultInstance(getContext()))
.onDismiss(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
@@ -162,6 +165,7 @@ public class QDPopupFragment extends BaseFragment {
.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() {
@@ -184,6 +188,7 @@ public class QDPopupFragment extends BaseFragment {
.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
@@ -236,6 +241,7 @@ public class QDPopupFragment extends BaseFragment {
QMUIPopups.fullScreenPopup(getContext())
.addView(frameLayout)
.closeBtn(true)
.skinManager(QMUISkinManager.defaultInstance(getContext()))
.onBlankClick(new QMUIFullScreenPopup.OnBlankClickListener() {
@Override
public void onBlankClick(QMUIFullScreenPopup popup) {
@@ -322,6 +328,7 @@ public class QDPopupFragment extends BaseFragment {
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) {
@@ -344,6 +351,7 @@ public class QDPopupFragment extends BaseFragment {
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() {
@@ -381,6 +389,7 @@ public class QDPopupFragment extends BaseFragment {
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() {
@@ -21,6 +21,7 @@ import android.view.View;
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;
@@ -68,6 +69,7 @@ public class QDWebViewBridgeFragment extends QDWebExplorerFragment {
dialog.dismiss();
}
}))
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.show();
}
});
@@ -20,6 +20,7 @@ import android.os.Bundle;
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;
@@ -61,6 +62,7 @@ public class QDWebViewFixFragment extends QDWebExplorerFragment {
dialog.dismiss();
}
}))
.setSkinManager(QMUISkinManager.defaultInstance(getContext()))
.show();
}
});
@@ -24,6 +24,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import com.qmuiteam.qmui.skin.QMUISkinManager;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.util.QMUIDrawableHelper;
import com.qmuiteam.qmui.util.QMUIViewHelper;
@@ -118,6 +119,7 @@ public class QDDrawableHelperFragment extends BaseFragment {
@Override
public void onClick(View v) {
QMUIDialog.CustomDialogBuilder dialogBuilder = new QMUIDialog.CustomDialogBuilder(getContext());
dialogBuilder.setSkinManager(QMUISkinManager.defaultInstance(getContext()));
dialogBuilder.setLayout(R.layout.drawablehelper_createfromview);
final QMUIDialog dialog = dialogBuilder.setTitle("示例效果(点击下图关闭本浮层)").create();
ImageView displayImageView = (ImageView) dialog.findViewById(R.id.createFromViewDisplay);
@@ -24,6 +24,7 @@ import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.view.View;
import com.qmuiteam.qmui.skin.QMUISkinManager;
import com.qmuiteam.qmui.span.QMUIBlockSpaceSpan;
import com.qmuiteam.qmui.span.QMUITouchableSpan;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
@@ -53,6 +54,7 @@ public class UpgradeTipTask implements UpgradeTask {
String title = String.format(activity.getString(R.string.app_upgrade_tip_title), QMUIPackageHelper.getAppVersion(activity));
CharSequence message = getUpgradeWord(activity);
new QMUIDialog.MessageDialogBuilder(activity)
.setSkinManager(QMUISkinManager.defaultInstance(activity))
.setTitle(title)
.setMessage(message)
.create(R.style.ReleaseDialogTheme)
@@ -569,6 +569,7 @@ public class QMUISkinMaker {
private void chooseAttr(View anchorView, ValueWriter valueWriter) {
SkinAttrChooseMakerPopup popup = new SkinAttrChooseMakerPopup(anchorView.getContext(), mAttrsInR, valueWriter);
popup.skinManager(QMUISkinManager.defaultInstance(anchorView.getContext()));
popup.show(anchorView);
}