diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index dbc3e42..213a2b9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -20,7 +20,13 @@ - + + + + + + + () { } } begin_listRL.setOnClickListener { - dialog = DialogTool(this).buildList(this, choseGradeBeanList) { + dialog = DialogTool().buildList(this, choseGradeBeanList) { adaper.list = it.bean adaper.notifyDataSetChanged() begin_list.text = it.content diff --git a/app/src/main/java/com/skipping/activity/detail/DetailActivity.java b/app/src/main/java/com/skipping/activity/detail/DetailActivity.java index 82ed4ec..83f4e4b 100644 --- a/app/src/main/java/com/skipping/activity/detail/DetailActivity.java +++ b/app/src/main/java/com/skipping/activity/detail/DetailActivity.java @@ -60,28 +60,28 @@ public class DetailActivity extends BaseActivity { adapter.setOnClickListener(new DetailAdapter.OnClick() { @Override public void click(int position) { - connectManager.pairDevice(position); +// connectManager.pairDevice(position); } }); MMKV kv = MMKV.defaultMMKV(); concise = new Concise(Contants.BASE_URL) { }.addHeader("Token", kv.decodeString(Contants.TOKEN)); ErrorToken.intercept(this, concise); -// concise.request(DetailActivity.this, concise.api.detailActivity(id), new CallBack>() { -// @Override -// public void onSuccess(BaseBean listBaseBean) { -// idTV.setText(listBaseBean.getData().getId() + ""); -// name.setText(listBaseBean.getData().getActivityName() + ""); -// adapter.setData(listBaseBean.getData().getCandidates().get(0)); -// adapter.notifyDataSetChanged(); -// -// } -// -// @Override -// public void onFailed(Throwable e) { -// -// } -// }); + concise.request(DetailActivity.this, concise.api.detailActivity(id), new CallBack>() { + @Override + public void onSuccess(BaseBean listBaseBean) { + idTV.setText(listBaseBean.getData().getId() + ""); + name.setText(listBaseBean.getData().getActivityName() + ""); + adapter.setData(listBaseBean.getData().getCandidates().get(0)); + adapter.notifyDataSetChanged(); + + } + + @Override + public void onFailed(Throwable e) { + + } + }); List list = new ArrayList<>(); DetailActivityBean.CandidatesBean bean1 = new DetailActivityBean.CandidatesBean(); diff --git a/app/src/main/java/com/skipping/activity/home/HomeActivity.kt b/app/src/main/java/com/skipping/activity/home/HomeActivity.kt index 0a167f3..14ffe2f 100644 --- a/app/src/main/java/com/skipping/activity/home/HomeActivity.kt +++ b/app/src/main/java/com/skipping/activity/home/HomeActivity.kt @@ -19,9 +19,9 @@ import com.skipping.activity.perform.PerformActivity import com.skipping.activity.setting.SettingActivity import com.skipping.net.ActivityBean import com.skipping.net.GradleBean +import com.skipping.utils.ConnectManager import com.skipping.utils.DateUtils import com.skipping.utils.ScreenUtil -import com.skipping.view.bubblewindow.BubbleWindow import com.skipping.view.dialog.DialogBean import com.skipping.view.dialog.DialogTool import kotlinx.android.synthetic.main.activity_detail.view.* @@ -58,6 +58,7 @@ class HomeActivity : BaseActivity() { } override fun initData() { + ConnectManager.getSingleton() setting_btn.setOnClickListener { startActivity(Intent(this@HomeActivity, SettingActivity::class.java)) } @@ -68,7 +69,7 @@ class HomeActivity : BaseActivity() { p.getClassList() choseClass.setOnClickListener { - dialog = DialogTool(this).buildList(this, choseGradeBeanList) { + dialog = DialogTool().buildList(this, choseGradeBeanList) { choseCla = it.bean chooseIV.text = it.bean.groupName + "班" activityNameEdit?.setText(it.bean.groupName + "班活动") diff --git a/app/src/main/java/com/skipping/fragment/pair/DeviceBean.kt b/app/src/main/java/com/skipping/fragment/pair/DeviceBean.kt index 6e312fd..894f03f 100644 --- a/app/src/main/java/com/skipping/fragment/pair/DeviceBean.kt +++ b/app/src/main/java/com/skipping/fragment/pair/DeviceBean.kt @@ -1,11 +1,28 @@ package com.skipping.fragment.pair +import com.libs.utils.LogUtil +import com.loop.loopminisdk.LoopDevice +import com.loop.loopminisdk.LoopHost + /** * @author Ming * 3/27/22 * */ class DeviceBean { - var id: Int? = null - var mac: String? = null + var Code: String? = null + get() { + if (field?.get(0) == '0') { + LogUtil.e("123123") + return field?.replace("0", "") + } + return field + } + + var loopDevice: LoopDevice? = null + + + override fun toString(): String { + return "DeviceBean(Code=$Code, loopDevice=$loopDevice)" + } } \ No newline at end of file diff --git a/app/src/main/java/com/skipping/fragment/pair/PairAdaper.kt b/app/src/main/java/com/skipping/fragment/pair/PairAdaper.kt index 3456d88..ea01c7a 100644 --- a/app/src/main/java/com/skipping/fragment/pair/PairAdaper.kt +++ b/app/src/main/java/com/skipping/fragment/pair/PairAdaper.kt @@ -5,35 +5,74 @@ import android.content.Context import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.LinearLayout import android.widget.TextView +import androidx.core.content.ContextCompat import androidx.fragment.app.FragmentActivity import androidx.recyclerview.widget.RecyclerView import com.loop.loopminisdk.LoopDevice +import com.loop.loopminisdk.LoopMini import com.skipping.R +import com.skipping.net.ActivityBean /** * @author Ming * 3/25/22 * */ -class PairAdaper(context: Context?,list: List) : RecyclerView.Adapter() { +class PairAdaper(context: Context?, list: List) : RecyclerView.Adapter() { var list = list var context = context lateinit var onClick: () -> Unit + lateinit var onClickConnect: (bean: DeviceBean) -> Unit + var status = STATUS.con - fun setData(list: List){ + fun setData(list: List) { this.list = list notifyDataSetChanged() } + fun changeStatus(st: STATUS) { + status = st + notifyDataSetChanged() + } + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PairAdaper.Holder { return Holder(LayoutInflater.from(context).inflate(R.layout.pair_item, parent, false)) } override fun onBindViewHolder(holder: PairAdaper.Holder, position: Int) { - holder.pair_item_tv1.text = list[position].loopDeviceId.toString() - holder.pair_item_tv2.text = list[position].macList.toString() - holder.pair_item_tv3.text = list[position].power.toString() + holder.pair_item_tv1.text = list[position].Code + if (list[position].loopDevice?.macList == null) { + holder.pair_item_tv2.text = "" + holder.pair_item_tv4.text = "未配对" + holder.pair_item_tv4.setTextColor(ContextCompat.getColor(context!!, R.color.color_d71345)) + } else { + holder.pair_item_tv2.text = LoopMini.bytesToHexString(list[position].loopDevice?.macList) + holder.pair_item_tv4.text = "已配对" + holder.pair_item_tv4.setTextColor(ContextCompat.getColor(context!!, R.color.color_3d3d3d)) + } + if (list[position].loopDevice?.power == null) { + holder.pair_item_tv3.text = "" + } else { + holder.pair_item_tv3.text = list[position].loopDevice?.power.toString() + } + + when (status) { + STATUS.con -> { + holder.pair_item_tv3.visibility = View.GONE + holder.pair_item_ll.visibility = View.VISIBLE + } + STATUS.uncon -> { + holder.pair_item_tv3.visibility = View.VISIBLE + holder.pair_item_ll.visibility = View.GONE + } + } + + holder.pair_item_tv5.setOnClickListener { + onClickConnect.invoke(list[position]) + } + } override fun getItemCount(): Int { @@ -44,5 +83,17 @@ class PairAdaper(context: Context?,list: List) : RecyclerView.Adapte var pair_item_tv1 = itemView.findViewById(R.id.pair_item_tv1) var pair_item_tv2 = itemView.findViewById(R.id.pair_item_tv2) var pair_item_tv3 = itemView.findViewById(R.id.pair_item_tv3) + var pair_item_tv4 = itemView.findViewById(R.id.pair_item_tv4) + var pair_item_tv5 = itemView.findViewById(R.id.pair_item_tv5) + var pair_item_ll = itemView.findViewById(R.id.pair_item_ll) + } + + fun setOnConnectClickListener(onClickConnect: (bean: DeviceBean) -> Unit) { + this.onClickConnect = onClickConnect + } + + + enum class STATUS { + con, uncon } } \ No newline at end of file diff --git a/app/src/main/java/com/skipping/fragment/pair/PairFragment.kt b/app/src/main/java/com/skipping/fragment/pair/PairFragment.kt index f1e81de..7baaee7 100644 --- a/app/src/main/java/com/skipping/fragment/pair/PairFragment.kt +++ b/app/src/main/java/com/skipping/fragment/pair/PairFragment.kt @@ -1,15 +1,18 @@ package com.skipping.fragment.pair +import android.app.Dialog import android.os.Bundle import android.view.View import androidx.core.content.ContextCompat import androidx.recyclerview.widget.LinearLayoutManager import com.libs.fragment.BaseFragment import com.libs.utils.LogUtil -import com.loop.loopminisdk.LoopDevice import com.loop.loopminisdk.LoopMini import com.skipping.R +import com.skipping.net.DeviceCode import com.skipping.utils.ConnectManager +import com.skipping.view.dialog.DialogTool +import com.skipping.view.dialog.Status import kotlinx.android.synthetic.main.activity_perform.* import kotlinx.android.synthetic.main.fragment_pair.* @@ -20,19 +23,18 @@ import kotlinx.android.synthetic.main.fragment_pair.* */ class PairFragment : BaseFragment() { var position = 0 - var deviceList: MutableList = ArrayList() lateinit var manager: ConnectManager - lateinit var adaper:PairAdaper + lateinit var adaper: PairAdaper override fun getLayoutId(): Int { return R.layout.fragment_pair; } override fun initView(view: View?, savedInstanceState: Bundle?) { + initPresnter() pairStatus.setOnClickListener { - manager.host + LogUtil.e("列表", manager.deviceBeanList) } - pair_btn.setOnClickListener { if (position == 0) { return@setOnClickListener @@ -42,6 +44,9 @@ class PairFragment : BaseFragment() { pair_btn.setTextColor(ContextCompat.getColor(activity!!, R.color.black)) connect_btn.setBackgroundResource(R.drawable.connect_btn_unclicked) connect_btn.setTextColor(ContextCompat.getColor(activity!!, R.color.white)) + pair_power.visibility = View.GONE + pair_ll.visibility = View.VISIBLE + adaper.changeStatus(PairAdaper.STATUS.con) } connect_btn.setOnClickListener { @@ -53,26 +58,38 @@ class PairFragment : BaseFragment() { pair_btn.setTextColor(ContextCompat.getColor(activity!!, R.color.white)) connect_btn.setBackgroundResource(R.drawable.connect_btn_clicked) connect_btn.setTextColor(ContextCompat.getColor(activity!!, R.color.black)) + pair_power.visibility = View.VISIBLE + pair_ll.visibility = View.GONE + adaper.changeStatus(PairAdaper.STATUS.uncon) + } + title_host.setOnClickListener { + manager.openPairMode() } } override fun initData() { manager = ConnectManager.getSingleton() + manager.setOnflushListListener { + adaper.setData(manager.deviceBeanList) + adaper.notifyDataSetChanged() + } + showDeviceList() + manager.setLoopHostListener { var bytes = it.macList pair_address.text = "网关地址:" + LoopMini.bytesToHexString(bytes) pair_id.text = "网关id:" + it.hostId.toString() pair_list.layoutManager = LinearLayoutManager(activity) - for (i in 0..it.license){ - var device = LoopDevice().apply { - this.loopDeviceId = i - } - deviceList.add(device) - } - adaper = PairAdaper(activity,deviceList) - pair_list.adapter = adaper - adaper.notifyDataSetChanged() +// for (i in 0..it.license) { +// var device = LoopDevice().apply { +// this.loopDeviceId = i +// } +// deviceList.add(device) +// } +// adaper = PairAdaper(activity, deviceList) +// pair_list.adapter = adaper +// adaper.notifyDataSetChanged() } } @@ -85,4 +102,28 @@ class PairFragment : BaseFragment() { super.onPause() // manager.pause() } + + fun deviceList(list: List) { +// list.forEach { +// var deviceBean = DeviceBean() +// deviceBean.Code = it.code +// deviceList.add(deviceBean) +// } +// manager.setList(deviceList) +// pair_list.layoutManager = LinearLayoutManager(activity) +// adaper = PairAdaper(activity, deviceList) +// adaper.setOnConnectClickListener { +// manager.pairDevice(activity, it.Code?.toInt()!!) +// } +// pair_list.adapter = adaperpair_item_tv5 + } + + fun showDeviceList(){ + pair_list.layoutManager = LinearLayoutManager(activity) + adaper = PairAdaper(activity, manager.deviceBeanList) + adaper.setOnConnectClickListener { + manager.pairDevice(activity, it.Code?.toInt()!!) + } + pair_list.adapter = adaper + } } \ No newline at end of file diff --git a/app/src/main/java/com/skipping/fragment/pair/PairPresenter.kt b/app/src/main/java/com/skipping/fragment/pair/PairPresenter.kt index 20988a1..bb5ef0e 100644 --- a/app/src/main/java/com/skipping/fragment/pair/PairPresenter.kt +++ b/app/src/main/java/com/skipping/fragment/pair/PairPresenter.kt @@ -1,12 +1,34 @@ package com.skipping.fragment.pair import com.libs.fragment.BasePresenter +import com.libs.network.CallBack +import com.libs.network.Concise +import com.skipping.BASE_URL +import com.skipping.TOKEN import com.skipping.activity.IView +import com.skipping.net.API +import com.skipping.net.ActivityBean +import com.skipping.net.BaseBean +import com.skipping.net.DeviceCode +import com.tencent.mmkv.MMKV /** * @author Ming * 3/24/22 * */ -class PairPresenter :BasePresenter(){ +class PairPresenter :BasePresenter(){ + val mmkv = MMKV.defaultMMKV() + val concise: Concise = object : Concise(BASE_URL) {}.addHeader("Token", mmkv?.decodeString(TOKEN)).build() as Concise + + fun getDeviceList(){ + concise.request(v, concise.api.getdeviceList(), object : CallBack>> { + override fun onSuccess(k: BaseBean>?) { + v.deviceList(k?.data!!) + } + + override fun onFailed(e: Throwable?) { + } + }) + } } \ No newline at end of file diff --git a/app/src/main/java/com/skipping/net/API.java b/app/src/main/java/com/skipping/net/API.java index d653687..b3f3c4f 100644 --- a/app/src/main/java/com/skipping/net/API.java +++ b/app/src/main/java/com/skipping/net/API.java @@ -75,4 +75,10 @@ public interface API { Observable score(@Body ScoreReqBean scoreReqBean); + /** + * 设备列表 + * @return + */ + @GET("rope/list") + Observable>> getdeviceList(); } diff --git a/app/src/main/java/com/skipping/net/DeviceCode.java b/app/src/main/java/com/skipping/net/DeviceCode.java new file mode 100644 index 0000000..abb9b78 --- /dev/null +++ b/app/src/main/java/com/skipping/net/DeviceCode.java @@ -0,0 +1,27 @@ +package com.skipping.net; + +/** + * @author Ming + * 4/1/22 + */ +public class DeviceCode { + private String Code; + + public String getCode() { + if (Code.getBytes()[0] == '0') { + return Code.replace("0", ""); + } + return Code; + } + + public void setCode(String code) { + Code = code; + } + + @Override + public String toString() { + return "DeviceCode{" + + "Code='" + Code + '\'' + + '}'; + } +} diff --git a/app/src/main/java/com/skipping/utils/ConnectManager.java b/app/src/main/java/com/skipping/utils/ConnectManager.java index 31b2426..e1b2ba8 100644 --- a/app/src/main/java/com/skipping/utils/ConnectManager.java +++ b/app/src/main/java/com/skipping/utils/ConnectManager.java @@ -15,15 +15,27 @@ import android.widget.Button; import android.widget.EditText; import com.libs.fragment.BaseApplication; +import com.libs.network.CallBack; +import com.libs.network.Concise; import com.libs.utils.LogUtil; import com.libs.utils.ToastUtil; import com.loop.loopminisdk.LoopDevice; import com.loop.loopminisdk.LoopHost; import com.loop.loopminisdk.LoopMessage; import com.loop.loopminisdk.LoopMini; +import com.skipping.APP; +import com.skipping.Contants; import com.skipping.R; import com.skipping.activity.HostActivity; +import com.skipping.fragment.pair.DeviceBean; +import com.skipping.net.API; +import com.skipping.net.BaseBean; +import com.skipping.net.DeviceCode; +import com.skipping.view.dialog.DialogTool; +import com.skipping.view.dialog.Status; +import com.tencent.mmkv.MMKV; +import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -42,8 +54,12 @@ public class ConnectManager { private Handler mHandler; private int position; private OnLoopHost onLoopHost; + private OnflushList onflushList; private ScheduledFuture scheduledFuture; private static volatile ConnectManager connectManager; + public List deviceBeanList = new ArrayList<>(); + private ScheduledFuture future; + private DialogTool dialog; public static ConnectManager getSingleton() { if (connectManager == null) { @@ -56,6 +72,10 @@ public class ConnectManager { return connectManager; } + public void setList(List deviceBeanList) { + deviceBeanList.clear(); + this.deviceBeanList.addAll(deviceBeanList); + } private final BroadcastReceiver mUsbReceiver = new BroadcastReceiver() { @@ -82,8 +102,8 @@ public class ConnectManager { }; public ConnectManager() { - LogUtil.e("创建"); mHandler = new DeviceHandler(); + getdeviceList(); } private final ServiceConnection usbConnection = new ServiceConnection() { @@ -97,7 +117,7 @@ public class ConnectManager { loopMax.getHostInfo(); loopMax.openPairMode(); } - },1000); + }, 1000); } @Override @@ -140,7 +160,22 @@ public class ConnectManager { * * @param id */ - public void pairDevice(int id) { + public void pairDevice(Activity activity, int id) { + LogUtil.e("连接到", id); + if (dialog != null) { + dialog.setStatus(Status.CONNECTING); + } else { + dialog = new DialogTool(); + dialog.build(activity, Status.CONNECTING, String.valueOf(id)); + dialog.dialog_reset.setOnClickListener(v -> pairDevice(activity, id)); + dialog.dialog_cancel.setOnClickListener(v -> dialog.dismiss()); + } + if (future != null) { + future.cancel(false); + } + future = ThreadPoolUtil.getSingleton().scheduleMain(() -> { + dialog.setStatus(Status.RESET); + }, 3000); loopMax.pairDevice(id); } @@ -178,14 +213,13 @@ public class ConnectManager { } - public void resume(){ + public void resume() { setFilters(); startService(usbConnection); } - public void pause(){ - LogUtil.e("关闭"); + public void pause() { BaseApplication.getInstance().unregisterReceiver(mUsbReceiver); BaseApplication.getInstance().unbindService(usbConnection); } @@ -217,8 +251,10 @@ public class ConnectManager { super.handleMessage(msg); switch (msg.what) { case LoopMini.LOOP_PAIR_DEVICE_INFO: + case LoopMini.LOOP_GET_DEVICE_INFO: loopDevice = (LoopDevice) msg.obj; - addDevice(loopDevice); + addList(loopDevice); +// addDevice(loopDevice); LogUtil.e("连接LoopDevice", loopDevice.toString()); break; case LoopMini.Loop_GET_HOST_INFO: @@ -226,16 +262,19 @@ public class ConnectManager { onLoopHost.connected(loopHost); LogUtil.e("LoopHost", loopHost.toString()); break; - case LoopMini.LOOP_GET_DEVICE_INFO: - loopDevice = (LoopDevice) msg.obj; - addDevice(loopDevice); - LogUtil.e("获取LoopDevice", loopDevice.toString()); - break; case LoopMini.LOOP_MESSAGE: LoopMessage loopMessage = (LoopMessage) msg.obj; LogUtil.e("LoopMessage", loopMessage.toString()); break; } + if (dialog != null) { + ThreadPoolUtil.getSingleton().scheduleMain(new Runnable() { + @Override + public void run() { + dialog.dismiss(); + } + }, 1000); + } } } @@ -243,22 +282,63 @@ public class ConnectManager { loopDeviceSet.add(loopDevice); } - public Set getDevice(){ + public Set getDevice() { return loopDeviceSet; } - public void setLoopHostListener(OnLoopHost onLoopHost){ + public void setLoopHostListener(OnLoopHost onLoopHost) { this.onLoopHost = onLoopHost; } - public LoopHost getHost(){ + public void setOnflushListListener(OnflushList onflushList) { + this.onflushList = onflushList; + } + + public LoopHost getHost() { return loopHost; } - public interface OnLoopHost{ + public interface OnLoopHost { void connected(LoopHost host); } + public interface OnflushList { + void flush(); + } + + + private void addList(LoopDevice loopDevice) { + for (DeviceBean deviceBean : deviceBeanList) { + if (deviceBean.getCode().equals(String.valueOf(loopDevice.loopDeviceId))) { + deviceBean.setLoopDevice(loopDevice); + onflushList.flush(); + return; + } + } + } + + + private void getdeviceList() { + MMKV mmkv = MMKV.defaultMMKV(); + Concise concise = new Concise(Contants.BASE_URL) { + }.addHeader("Token", mmkv.decodeString(Contants.TOKEN)).build(); + concise.request(concise.api.getdeviceList(), new CallBack>>() { + @Override + public void onSuccess(BaseBean> listBaseBean) { + for (DeviceCode datum : listBaseBean.getData()) { + DeviceBean deviceBean = new DeviceBean(); + deviceBean.setCode(datum.getCode()); + deviceBeanList.add(deviceBean); + } + } + + @Override + public void onFailed(Throwable e) { + + } + }); + } + } diff --git a/app/src/main/java/com/skipping/view/dialog/DialogTool.kt b/app/src/main/java/com/skipping/view/dialog/DialogTool.kt index a302f6c..b635557 100644 --- a/app/src/main/java/com/skipping/view/dialog/DialogTool.kt +++ b/app/src/main/java/com/skipping/view/dialog/DialogTool.kt @@ -11,7 +11,9 @@ import android.widget.TextView import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.skipping.R +import com.skipping.fragment.pair.PairFragment import com.skipping.utils.ThreadPoolUtil +import org.w3c.dom.Text import java.util.concurrent.ScheduledFuture /** @@ -19,21 +21,26 @@ import java.util.concurrent.ScheduledFuture * 3/29/22 * */ -class DialogTool(val context: Context) { +class DialogTool() { lateinit var dialog_reset: TextView lateinit var dialog_bttv: TextView + lateinit var dialog_cancel: TextView lateinit var dialog_btll: LinearLayout lateinit var dialog_iv: ImageView + lateinit var dialog: AlertDialog var future: ScheduledFuture<*>? = null - fun build(status: Status) { - val dialog: AlertDialog = AlertDialog.Builder(context, R.style.bubble_dialog_style).create() - val view = View.inflate(context, R.layout.dialog_view, null) + fun build(activity: Activity, status: Status, content: String) { + dialog = AlertDialog.Builder(activity, R.style.bubble_dialog_style).create() + val view = View.inflate(activity, R.layout.dialog_view, null) val dialog_ll = view.findViewById(R.id.dialog_ll) dialog_bttv = view.findViewById(R.id.dialog_bttv) dialog_iv = view.findViewById(R.id.dialog_iv) dialog_btll = view.findViewById(R.id.dialog_btll) dialog_reset = view.findViewById(R.id.dialog_reset) + dialog_cancel = view.findViewById(R.id.dialog_cancel) + val dialog_content = view.findViewById(R.id.dialog_content) + dialog_content.text = content when (status) { Status.CONNECTING -> { dialog_btll.visibility = View.GONE @@ -49,7 +56,6 @@ class DialogTool(val context: Context) { } } - var lp = dialog_ll.layoutParams lp.width = 630 lp.height = 344 @@ -90,8 +96,8 @@ class DialogTool(val context: Context) { fun buildList(activity: Activity, list: List>, onClick: (bean: DialogBean) -> Unit): AlertDialog { - val dialog: AlertDialog = AlertDialog.Builder(context, R.style.bubble_dialog_style).create() - val view = View.inflate(context, R.layout.dialog_view_list, null) + dialog = AlertDialog.Builder(activity, R.style.bubble_dialog_style).create() + val view = View.inflate(activity, R.layout.dialog_view_list, null) val dialog_list_ll = view.findViewById(R.id.dialog_list_ll) val recyclerview = view.findViewById(R.id.recyclerview) recyclerview.layoutManager = LinearLayoutManager(activity) @@ -107,5 +113,9 @@ class DialogTool(val context: Context) { dialog.show() return dialog } + + fun dismiss() { + dialog.dismiss() + } } diff --git a/app/src/main/res/layout/fragment_pair.xml b/app/src/main/res/layout/fragment_pair.xml index a7665f7..a7a0cd4 100644 --- a/app/src/main/res/layout/fragment_pair.xml +++ b/app/src/main/res/layout/fragment_pair.xml @@ -19,6 +19,7 @@ android:layout_weight="1" /> + android:textSize="20dp" + android:visibility="gone" /> + + + + + + + + + + android:layout_height="match_parent" + android:overScrollMode="never" /> \ No newline at end of file diff --git a/app/src/main/res/layout/pair_item.xml b/app/src/main/res/layout/pair_item.xml index aa5c75d..44c5645 100644 --- a/app/src/main/res/layout/pair_item.xml +++ b/app/src/main/res/layout/pair_item.xml @@ -4,29 +4,82 @@ android:layout_height="wrap_content" android:background="@color/white" android:gravity="center" - android:padding="20dp"> + android:orientation="vertical"> - + android:background="@color/white" + android:gravity="center" + android:orientation="horizontal"> - + - + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index b2da58d..cbf3e6d 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -29,4 +29,5 @@ #8C2C2C2C #1296DB #464547 + #d71345 \ No newline at end of file