From 0b954e4f4572715b7be000309b3e390f92f457cd Mon Sep 17 00:00:00 2001 From: HuanChengFly <609486518@qq.com> Date: Mon, 5 Oct 2020 21:14:08 +0800 Subject: [PATCH] =?UTF-8?q?pref:=20=E7=A7=BB=E9=99=A4=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E5=BA=93=20SearchView?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 1 - app/src/main/AndroidManifest.xml | 4 - .../tieba/post/activities/ForumActivity.kt | 15 +--- .../tieba/post/activities/MainActivity.kt | 63 +------------- .../tieba/post/activities/SearchActivity.java | 84 ------------------ .../tieba/post/fragments/SettingsFragment.kt | 8 +- .../post/widgets/theme/TintSearchView.java | 86 ------------------- app/src/main/res/layout/activity_forum.xml | 7 -- app/src/main/res/layout/activity_main.xml | 8 -- app/src/main/res/layout/activity_search.xml | 36 -------- app/src/main/res/values/attrs.xml | 6 -- app/src/main/res/values/styles.xml | 25 ------ app/src/main/res/xml/preferences.xml | 5 -- 13 files changed, 7 insertions(+), 341 deletions(-) delete mode 100644 app/src/main/java/com/huanchengfly/tieba/post/activities/SearchActivity.java delete mode 100644 app/src/main/java/com/huanchengfly/tieba/post/widgets/theme/TintSearchView.java delete mode 100644 app/src/main/res/layout/activity_search.xml diff --git a/app/build.gradle b/app/build.gradle index e38f2b2a..aa65d9a9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -142,7 +142,6 @@ dependencies { implementation 'cn.dreamtobe.kpswitch:library:1.6.2' implementation 'org.litepal.android:kotlin:3.0.0' implementation 'com.github.SheHuan:RecyclerViewAdapter:1.2.6' - implementation 'com.lapism:searchview:27.1.1.0.0' implementation 'com.github.lygttpod:SuperTextView:2.1.8' implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.10.0' implementation 'com.bm.photoview:library:1.4.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b0c616d8..bcc0dcdc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -99,10 +99,6 @@ android:name=".activities.UserActivity" android:configChanges="screenSize|screenLayout|orientation|smallestScreenSize|keyboardHidden" android:windowSoftInputMode="adjustResize" /> - { @@ -142,9 +128,6 @@ open class MainActivity : BaseActivity(), BottomNavigationView.OnNavigationItemS } protected fun initView() { - mSearchAdapter = MainSearchAdapter(this) - mSearchAdapter!!.onSearchItemClickListener = this - mSearchView.adapter = mSearchAdapter val hideExploreItemView = menuView!!.getChildAt(if (hideExplore) 1 else 2) as BottomNavigationItemView val badge = layoutInflater.inflate(R.layout.layout_badge, hideExploreItemView, true) badgeTextView = badge.findViewById(R.id.tv_msg_count) @@ -162,35 +145,11 @@ open class MainActivity : BaseActivity(), BottomNavigationView.OnNavigationItemS mViewPager.isCanScroll = false mViewPager.adapter = mAdapter mViewPager.offscreenPageLimit = mAdapter.count - refreshSearchView() - } - - override fun refreshGlobal(activity: Activity) { - super.refreshGlobal(activity) - refreshSearchView() - } - - private fun refreshSearchView() { - if (mSearchView == null) { - return - } - mSearchAdapter!!.refreshData() - mSearchView.theme = if (ThemeUtil.isNightMode(this) || ThemeUtil.THEME_TRANSLUCENT == ThemeUtil.getTheme(this)) Search.Theme.DARK else Search.Theme.LIGHT } protected fun initListener() { mBottomNavigationView.setOnNavigationItemSelectedListener(this) mBottomNavigationView.setOnNavigationItemReselectedListener(this) - mSearchView.setOnQueryTextListener(object : Search.OnQueryTextListener { - override fun onQueryTextChange(newText: CharSequence) {} - override fun onQueryTextSubmit(key: CharSequence): Boolean { - startActivity(Intent(this@MainActivity, SearchActivity::class.java) - .putExtra(SearchActivity.EXTRA_KEYWORD, key.toString())) - SearchHistory(key.toString()) - .saveOrUpdate("content = ?", key.toString()) - return true - } - }) mViewPager.addOnPageChangeListener(object : OnPageChangeListener { override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {} @@ -414,21 +373,13 @@ open class MainActivity : BaseActivity(), BottomNavigationView.OnNavigationItemS TiebaUtil.startSign(this@MainActivity) return true } - R.id.action_search -> { - mSearchView.open(item) - return true - } } return super.onOptionsItemSelected(item) } override fun onBackPressed() { - if (mSearchView.isOpen) { - mSearchView.close() - } else { - if (!HandleBackUtil.handleBackPress(this)) { - exit() - } + if (!HandleBackUtil.handleBackPress(this)) { + exit() } } @@ -446,14 +397,6 @@ open class MainActivity : BaseActivity(), BottomNavigationView.OnNavigationItemS mToolbar.title = newTitle } - override fun onSearchItemClick(position: Int, content: CharSequence) { - startActivity(Intent(this@MainActivity, SearchActivity::class.java) - .putExtra(SearchActivity.EXTRA_KEYWORD, content.toString())) - SearchHistory(content.toString()) - .saveOrUpdate("content = ?", content.toString()) - refreshSearchView() - } - private inner class NewMessageReceiver : BroadcastReceiver() { @SuppressLint("RestrictedApi") override fun onReceive(context: Context, intent: Intent) { diff --git a/app/src/main/java/com/huanchengfly/tieba/post/activities/SearchActivity.java b/app/src/main/java/com/huanchengfly/tieba/post/activities/SearchActivity.java deleted file mode 100644 index b14263d2..00000000 --- a/app/src/main/java/com/huanchengfly/tieba/post/activities/SearchActivity.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.huanchengfly.tieba.post.activities; - -import android.content.Intent; -import android.os.Bundle; -import android.text.TextUtils; - -import com.google.android.material.tabs.TabLayout; -import com.huanchengfly.tieba.post.ui.theme.utils.ThemeUtils; -import com.huanchengfly.tieba.post.R; -import com.huanchengfly.tieba.post.adapters.FragmentTabViewPagerAdapter; -import com.huanchengfly.tieba.post.fragments.SearchForumFragment; -import com.huanchengfly.tieba.post.fragments.SearchThreadFragment; -import com.huanchengfly.tieba.post.fragments.SearchUserFragment; -import com.huanchengfly.tieba.post.models.database.SearchHistory; -import com.huanchengfly.tieba.post.utils.ThemeUtil; -import com.huanchengfly.tieba.post.widgets.MyViewPager; -import com.lapism.searchview.Search; -import com.lapism.searchview.widget.SearchView; - -public class SearchActivity extends BaseActivity implements Search.OnQueryTextListener { - public static final String TAG = SearchActivity.class.getSimpleName(); - public static final String EXTRA_KEYWORD = "keyword"; - - private String mKeyword; - private TabLayout mTabLayout; - private SearchForumFragment searchForumFragment; - private SearchThreadFragment searchThreadFragment; - private SearchUserFragment searchUserFragment; - private SearchView mSearchView; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_search); - ThemeUtil.setTranslucentThemeBackground(findViewById(R.id.background)); - Intent intent = getIntent(); - mKeyword = intent.getStringExtra(EXTRA_KEYWORD); - mSearchView = (SearchView) findViewById(R.id.toolbar_search_view); - mSearchView.setTheme(ThemeUtil.isNightMode(this) ? Search.Theme.DARK : Search.Theme.LIGHT); - mSearchView.setShadow(false); - mSearchView.setBackgroundColor(ThemeUtils.getColorByAttr(this, R.attr.colorToolbar)); - mSearchView.setClearColor(ThemeUtils.getColorByAttr(this, R.attr.colorToolbarItem)); - mSearchView.setLogoColor(ThemeUtils.getColorByAttr(this, R.attr.colorToolbarItem)); - mSearchView.setTextColor(ThemeUtils.getColorByAttr(this, R.attr.colorToolbarItem)); - mSearchView.setHintColor(ThemeUtils.getColorByAttr(this, R.attr.color_toolbar_item_secondary)); - mTabLayout = (TabLayout) findViewById(R.id.tab); - MyViewPager mViewPager = (MyViewPager) findViewById(R.id.view_pager); - mViewPager.setOffscreenPageLimit(3); - mSearchView.setQuery(mKeyword, false); - mSearchView.setOnQueryTextListener(this); - mSearchView.setOnLogoClickListener(this::finish); - FragmentTabViewPagerAdapter mAdapter = new FragmentTabViewPagerAdapter(getSupportFragmentManager()); - searchForumFragment = SearchForumFragment.newInstance(mKeyword); - searchThreadFragment = SearchThreadFragment.newInstance(mKeyword); - searchUserFragment = SearchUserFragment.newInstance(mKeyword); - mAdapter.addFragment(searchForumFragment, "吧"); - mAdapter.addFragment(searchThreadFragment, "贴"); - mAdapter.addFragment(searchUserFragment, "人"); - mViewPager.setAdapter(mAdapter); - mTabLayout.setupWithViewPager(mViewPager); - } - - @Override - public boolean onQueryTextSubmit(CharSequence query) { - setKeyword(query.toString()); - new SearchHistory(query.toString()) - .saveOrUpdate("content = ?", query.toString()); - return true; - } - - private void setKeyword(String keyword) { - if (TextUtils.equals(keyword, mKeyword)) { - return; - } - mKeyword = keyword; - searchForumFragment.setKeyword(keyword, mTabLayout.getSelectedTabPosition() == 0); - searchThreadFragment.setKeyword(keyword, mTabLayout.getSelectedTabPosition() == 1); - searchUserFragment.setKeyword(keyword, mTabLayout.getSelectedTabPosition() == 2); - } - - @Override - public void onQueryTextChange(CharSequence newText) { - } -} \ No newline at end of file diff --git a/app/src/main/java/com/huanchengfly/tieba/post/fragments/SettingsFragment.kt b/app/src/main/java/com/huanchengfly/tieba/post/fragments/SettingsFragment.kt index 73a4761a..f444f30f 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/fragments/SettingsFragment.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/fragments/SettingsFragment.kt @@ -25,7 +25,6 @@ import com.huanchengfly.tieba.post.models.database.Account import com.huanchengfly.tieba.post.models.database.Block import com.huanchengfly.tieba.post.ui.theme.utils.ThemeUtils import com.huanchengfly.tieba.post.utils.* -import com.lapism.searchview.database.SearchHistoryTable import java.util.* class SettingsFragment : PreferencesFragment() { @@ -74,11 +73,6 @@ class SettingsFragment : PreferencesFragment() { } true } - findPreference("clear_search_history")!!.onPreferenceClickListener = Preference.OnPreferenceClickListener { - SearchHistoryTable(attachContext).clearDatabase() - if (view != null) Util.createSnackbar(view!!, R.string.toast_clear_success, Snackbar.LENGTH_SHORT).show() - true - } findPreference("exit_account")!!.isEnabled = AccountUtil.isLoggedIn(attachContext) findPreference("exit_account")!!.onPreferenceClickListener = Preference.OnPreferenceClickListener { DialogUtil.build(attachContext) @@ -132,7 +126,7 @@ class SettingsFragment : PreferencesFragment() { clearCache!!.summary = attachContext.getString(R.string.tip_cache, GlideCacheUtil.getInstance().getCacheSize(attachContext)) clearCache.onPreferenceClickListener = Preference.OnPreferenceClickListener { preference: Preference -> GlideCacheUtil.getInstance().clearImageAllCache(attachContext) - if (view != null) Util.createSnackbar(view!!, R.string.toast_clear_cache_success, Snackbar.LENGTH_SHORT).show() + if (view != null) Util.createSnackbar(requireView(), R.string.toast_clear_cache_success, Snackbar.LENGTH_SHORT).show() preference.summary = attachContext.getString(R.string.tip_cache, "0.0B") true } diff --git a/app/src/main/java/com/huanchengfly/tieba/post/widgets/theme/TintSearchView.java b/app/src/main/java/com/huanchengfly/tieba/post/widgets/theme/TintSearchView.java deleted file mode 100644 index 6bf2bbf5..00000000 --- a/app/src/main/java/com/huanchengfly/tieba/post/widgets/theme/TintSearchView.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.huanchengfly.tieba.post.widgets.theme; - -import android.content.Context; -import android.content.res.TypedArray; -import android.util.AttributeSet; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import com.huanchengfly.tieba.post.ui.theme.interfaces.Tintable; -import com.huanchengfly.tieba.post.ui.theme.utils.ThemeUtils; -import com.huanchengfly.tieba.post.R; -import com.lapism.searchview.widget.SearchView; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - -public class TintSearchView extends SearchView implements Tintable { - private int mBackgroundTintResId; - private int mSearchItemColorResId; - private int mHintColorResId; - - public TintSearchView(@NonNull Context context) { - this(context, null); - } - - public TintSearchView(@NonNull Context context, @Nullable AttributeSet attrs) { - this(context, attrs, 0); - } - - public TintSearchView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { - this(context, attrs, defStyleAttr, 0); - } - - public TintSearchView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - if (isInEditMode()) { - return; - } - if (attrs == null) { - mBackgroundTintResId = 0; - mSearchItemColorResId = 0; - mHintColorResId = 0; - return; - } - TypedArray array = getContext().obtainStyledAttributes(attrs, R.styleable.TintSearchView, defStyleAttr, 0); - mBackgroundTintResId = array.getResourceId(R.styleable.TintSearchView_searchBackground, 0); - mSearchItemColorResId = array.getResourceId(R.styleable.TintSearchView_searchItemColor, 0); - mHintColorResId = array.getResourceId(R.styleable.TintSearchView_hintColor, 0); - array.recycle(); - applyTintColor(); - } - - private void applyTintColor() { - if (mBackgroundTintResId != 0) { - setBackgroundColor(ThemeUtils.getColorById(getContext(), mBackgroundTintResId)); - } - if (mSearchItemColorResId != 0) { - setLogoColor(ThemeUtils.getColorById(getContext(), mBackgroundTintResId)); - setMicColor(ThemeUtils.getColorById(getContext(), mBackgroundTintResId)); - setClearColor(ThemeUtils.getColorById(getContext(), mBackgroundTintResId)); - try { - Method method = Class.forName("com.lapism.searchview.widget.SearchView").getDeclaredMethod("setMenuColor", int.class); - method.setAccessible(true); - method.invoke(this, ThemeUtils.getColorById(getContext(), mBackgroundTintResId)); - } catch (NoSuchMethodException e) { - e.printStackTrace(); - } catch (ClassNotFoundException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } catch (InvocationTargetException e) { - e.printStackTrace(); - } - setTextColor(ThemeUtils.getColorById(getContext(), mBackgroundTintResId)); - } - if (mHintColorResId != 0) { - setHintColor(ThemeUtils.getColorById(getContext(), mBackgroundTintResId)); - } - } - - @Override - public void tint() { - - } -} diff --git a/app/src/main/res/layout/activity_forum.xml b/app/src/main/res/layout/activity_forum.xml index a66889c0..08231c2d 100644 --- a/app/src/main/res/layout/activity_forum.xml +++ b/app/src/main/res/layout/activity_forum.xml @@ -332,13 +332,6 @@ app:backgroundTint="@color/default_color_primary" app:borderWidth="0dp" /> - - diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index f2790db1..bf157ece 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -47,12 +47,4 @@ app:labelVisibilityMode="unlabeled" app:menu="@menu/navbar_main" /> - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_search.xml b/app/src/main/res/layout/activity_search.xml deleted file mode 100644 index 5cf1ad65..00000000 --- a/app/src/main/res/layout/activity_search.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index ea77d956..1247ba90 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -125,12 +125,6 @@ - - - - - - diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 0d342391..3ff3e160 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -58,24 +58,6 @@ - - - - -