/* * Copyright (c) 2018 The sky Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.sky.xposed.aweme.ui.dialog; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.Window; import com.sky.xposed.aweme.Constant; import com.sky.xposed.aweme.R; import com.sky.xposed.aweme.ui.base.BaseDialog; import com.sky.xposed.aweme.ui.util.UriUtil; import com.sky.xposed.aweme.util.PlayUtil; import com.sky.xposed.common.ui.interfaces.TrackViewStatus; import com.sky.xposed.common.ui.util.ViewUtil; import com.sky.xposed.common.ui.view.CommonFrameLayout; import com.sky.xposed.common.ui.view.EditTextItemView; import com.sky.xposed.common.ui.view.SpinnerItemView; import com.sky.xposed.common.ui.view.TitleView; import com.sky.xposed.common.util.ConversionUtil; import com.sky.xposed.common.util.ToastUtil; import com.squareup.picasso.Picasso; /** * Created by sky on 2018/8/22. */ public class PlayDialog extends BaseDialog implements TitleView.OnBackEventListener { private TitleView mToolbar; private CommonFrameLayout mCommonFrameLayout; private SpinnerItemView mAutoPlayType; private EditTextItemView mAutoPlaySleepTime; @Override protected View createView(LayoutInflater layoutInflater, ViewGroup viewGroup) { // 不显示默认标题 getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE); mCommonFrameLayout = new CommonFrameLayout(getContext()); mToolbar = mCommonFrameLayout.getTitleView(); mAutoPlayType = ViewUtil.newSpinnerItemView(getContext(), "播放方式", "", PlayUtil.getPlayTypeName(Constant.PlayType.TDEFAULT), PlayUtil.getPlayTypeName(Constant.PlayType.TIMING)); mAutoPlaySleepTime = new EditTextItemView(getContext()); mAutoPlaySleepTime.setName("播放休眠时间"); mAutoPlaySleepTime.setExtendHint("未设置"); mAutoPlaySleepTime.setUnit("秒"); mAutoPlaySleepTime.setInputType(com.sky.xposed.common.Constant.InputType.NUMBER_SIGNED); mCommonFrameLayout.addContent(mAutoPlayType); mCommonFrameLayout.addContent(mAutoPlaySleepTime); return mCommonFrameLayout; } @Override protected void initView(View view, Bundle bundle) { mToolbar.setTitle("播放设置"); mToolbar.showBack(); mToolbar.setOnBackEventListener(this); // 设置图标 Picasso.get() .load(UriUtil.getResource(R.drawable.ic_action_clear)) .into(mToolbar.getBackView()); String value = trackBind(mAutoPlayType, Constant.Preference.AUTO_PLAY_TYPE_NAME, PlayUtil.getPlayTypeName(Constant.PlayType.TDEFAULT), mStringChangeListener); trackBind(mAutoPlaySleepTime, Constant.Preference.AUTO_PLAY_SLEEP_TIME, Integer.toString(Constant.DefaultValue.AUTO_PLAY_SLEEP_TIME), mStringChangeListener); // 获取类型 int tValue = PlayUtil.getPlayType(value); // 设置状态 ViewUtil.setVisibility(mAutoPlaySleepTime, tValue == Constant.PlayType.TIMING ? View.VISIBLE : View.GONE); } @Override public void onEvent(View view) { // 退出 dismiss(); } private TrackViewStatus.StatusChangeListener mStringChangeListener = new TrackViewStatus.StatusChangeListener<String>() { @Override public boolean onStatusChange(View view, String key, String value) { switch (key) { case Constant.Preference.AUTO_PLAY_TYPE_NAME: String tKey = Constant.Preference.AUTO_PLAY_TYPE; int tValue = PlayUtil.getPlayType(value); // 单独设置下 getDefaultSharedPreferences().edit().putInt(tKey, tValue).apply(); // 发送更新信息 sendRefreshPreferenceBroadcast(tKey, tValue); // 设置状态 ViewUtil.setVisibility(mAutoPlaySleepTime, tValue == Constant.PlayType.TIMING ? View.VISIBLE : View.GONE); break; case Constant.Preference.AUTO_PLAY_SLEEP_TIME: int sleepTime = ConversionUtil.parseInt(value); if (sleepTime <= 5) { ToastUtil.show("设置的休眠数不能少于5秒,请重新设置"); return false; } break; } sendRefreshPreferenceBroadcast(key, value); return true; } }; }