diff --git a/.idea/misc.xml b/.idea/misc.xml index 4ef2cb8..d22d7e5 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -10,6 +10,7 @@ + diff --git a/app/src/main/java/com/fankes/miui/notify/ui/ConfigureActivity.kt b/app/src/main/java/com/fankes/miui/notify/ui/ConfigureActivity.kt index 7a77716..b9bec43 100644 --- a/app/src/main/java/com/fankes/miui/notify/ui/ConfigureActivity.kt +++ b/app/src/main/java/com/fankes/miui/notify/ui/ConfigureActivity.kt @@ -18,12 +18,23 @@ * * This file is Created by fankes on 2022/01/30. */ +@file:Suppress("SetTextI18n", "InflateParams") + package com.fankes.miui.notify.ui import android.os.Bundle +import android.view.LayoutInflater import android.view.View +import android.view.ViewGroup +import android.widget.BaseAdapter +import android.widget.ListView +import android.widget.TextView +import androidx.constraintlayout.utils.widget.ImageFilterView import com.fankes.miui.notify.R +import com.fankes.miui.notify.hook.HookMedium +import com.fankes.miui.notify.params.IconPackParams import com.fankes.miui.notify.ui.base.BaseActivity +import com.fankes.miui.notify.view.MaterialSwitch class ConfigureActivity : BaseActivity() { @@ -32,5 +43,54 @@ class ConfigureActivity : BaseActivity() { setContentView(R.layout.activity_config) /** 返回按钮点击事件 */ findViewById(R.id.title_back_icon).setOnClickListener { onBackPressed() } + /** 设置列表元素和 Adapter */ + findViewById(R.id.config_list_view).apply { + adapter = object : BaseAdapter() { + + private val inflater = LayoutInflater.from(context) + + override fun getCount() = IconPackParams.iconDatas.size + + override fun getItem(position: Int) = IconPackParams.iconDatas[position] + + override fun getItemId(position: Int) = position.toLong() + + override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { + var cView = convertView + val holder: ViewHolder + if (convertView == null) { + holder = ViewHolder() + cView = inflater.inflate(R.layout.adapter_config, null).also { + holder.appIcon = it.findViewById(R.id.adp_app_icon) + holder.appName = it.findViewById(R.id.adp_app_name) + holder.pkgName = it.findViewById(R.id.adp_app_pkg_name) + holder.cbrName = it.findViewById(R.id.adp_cbr_name) + holder.switch = it.findViewById(R.id.adp_app_switch) + } + cView.tag = holder + } else holder = convertView.tag as ViewHolder + getItem(position).also { + holder.appIcon.setImageBitmap(it.iconBitmap) + holder.appName.text = it.appName + holder.pkgName.text = it.packageName + holder.cbrName.text = "贡献者:" + it.contributorName + holder.switch.isChecked = HookMedium.isAppNotifyHookOf(it.packageName) + holder.switch.setOnCheckedChangeListener { btn, b -> + if (!btn.isPressed) return@setOnCheckedChangeListener + HookMedium.putAppNotifyHookOf(it.packageName, b) + } + } + return cView!! + } + + inner class ViewHolder { + lateinit var appIcon: ImageFilterView + lateinit var appName: TextView + lateinit var pkgName: TextView + lateinit var cbrName: TextView + lateinit var switch: MaterialSwitch + } + } + } } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_config.xml b/app/src/main/res/layout/activity_config.xml index 1c901f9..4799c74 100644 --- a/app/src/main/res/layout/activity_config.xml +++ b/app/src/main/res/layout/activity_config.xml @@ -23,7 +23,8 @@ style="?android:attr/selectableItemBackgroundBorderless" android:layout_width="20dp" android:layout_height="20dp" - android:layout_marginEnd="15dp" + android:layout_marginStart="15dp" + android:layout_marginEnd="25dp" android:src="@mipmap/back" android:tint="@color/colorTextGray" /> @@ -38,5 +39,44 @@ android:textStyle="bold" /> + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/adapter_config.xml b/app/src/main/res/layout/adapter_config.xml new file mode 100644 index 0000000..0d924a4 --- /dev/null +++ b/app/src/main/res/layout/adapter_config.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-xxhdpi/back.png b/app/src/main/res/mipmap-xxhdpi/back.png new file mode 100644 index 0000000..49415ff Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/back.png differ diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index bdc04db..0df5e08 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -7,4 +7,5 @@ #656565 #FF000000 #FFFFFFFF + #00000000 \ No newline at end of file