From cbb88109494ffc7916f6639c20ce05c0cec941a9 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 07 四月 2021 15:07:45 +0800
Subject: [PATCH] 3.9.1bug修复

---
 BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchActivity.java |  119 +++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 71 insertions(+), 48 deletions(-)

diff --git a/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchActivity.java b/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchActivity.java
index b628b5c..2901d35 100644
--- a/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchActivity.java
+++ b/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchActivity.java
@@ -20,6 +20,7 @@
 import android.widget.AdapterView.OnItemClickListener;
 import android.widget.ArrayAdapter;
 import android.widget.AutoCompleteTextView;
+import android.widget.EditText;
 import android.widget.FrameLayout;
 import android.widget.GridView;
 import android.widget.ImageView;
@@ -41,6 +42,7 @@
 import com.umeng.analytics.MobclickAgent;
 import com.weikou.beibeivideo.BasicTextHttpResponseHandler;
 import com.weikou.beibeivideo.BeibeiVideoAPI;
+import com.weikou.beibeivideo.entity.ad.AdPositionEnum;
 import com.weikou.beibeivideo.entity.ad.ExpressAdContainer;
 import com.weikou.beibeivideo.ui.BaseActivity;
 import com.weikou.beibeivideo.ui.video.SuggestKeysAdapter;
@@ -49,6 +51,7 @@
 import com.weikou.beibeivideo.util.DimenUtils;
 import com.weikou.beibeivideo.util.ad.AdUtil;
 import com.weikou.beibeivideo.util.ad.ExpressAdManager;
+import com.weikou.beibeivideo.util.ui.TopStatusSettings;
 
 import org.apache.http.Header;
 import org.json.JSONObject;
@@ -58,7 +61,7 @@
 
 public class SearchActivity extends BaseActivity implements OnClickListener {
 
-    private AutoCompleteTextView et_search_key;
+    private EditText et_search_key;
 
     private TextView tv_clear;
 
@@ -70,7 +73,13 @@
 
     private LinearLayout ll_search_history;
 
+    private SearchSuggestFragment suggestFragment;
+
+    private FrameLayout fl_suggest;
+
     private String value = "";
+
+    private boolean touchSearchInput = false;
 
     private void initView() {
         fl_advertisement = findViewById(R.id.fl_advertisement);
@@ -81,29 +90,16 @@
         gv_history_search = findViewById(R.id.gv_history_search);
         tv_clear = findViewById(R.id.tv_search_clear_his);
         ll_search_history = findViewById(R.id.ll_search_history);
+        fl_suggest = findViewById(R.id.fl_suggest);
     }
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.search_actvity);
-        /*
-         * 璁$畻鐘舵�佹爮楂樺害骞惰缃�
-         */
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
-            int result = 0;
-            int resourceId = getResources().getIdentifier("status_bar_height",
-                    "dimen", "android");
-            if (resourceId > 0) {
-                result = getResources().getDimensionPixelSize(resourceId);
-            }
-            LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT,
-                    result);
-            findViewById(R.id.v_status_bar).setLayoutParams(params);
-        } else {
-            findViewById(R.id.v_status_bar).setVisibility(View.GONE);
-        }
+        TopStatusSettings.setStatusViewAndDeepColor(this);
         initView();
+        suggestFragment = new SearchSuggestFragment();
 
         et_search_key.setOnEditorActionListener(new TextView.OnEditorActionListener() {
             @Override
@@ -151,44 +147,24 @@
 
             @Override
             public void afterTextChanged(Editable s) {
-                if (!TextUtils.isEmpty(s.toString())
-                        || !TextUtils.isEmpty(et_search_key.getHint())) {
-                    suggestSearch(s.toString());
+                if (s != null && !TextUtils.isEmpty(s.toString())) {
                     et_search_key.setCompoundDrawablesWithIntrinsicBounds(0, 0,
                             R.drawable.ic_clear, 0);
-//					tv_search_cancel.setText(R.string.search);
                 } else {
                     et_search_key.setCompoundDrawablesWithIntrinsicBounds(0, 0,
                             0, 0);
-//					tv_search_cancel.setText(R.string.cancel);
                 }
+                suggestSearch(s != null ? s.toString() : null);
             }
         });
 
         if (!TextUtils.isEmpty(value)) {
             et_search_key.setCompoundDrawablesWithIntrinsicBounds(0, 0,
                     R.drawable.ic_clear, 0);
-//			tv_search_cancel.setText(R.string.search);
         } else {
             et_search_key.setCompoundDrawablesWithIntrinsicBounds(0, 0,
                     0, 0);
-//			tv_search_cancel.setText(R.string.cancel);
         }
-
-        et_search_key.setOnItemClickListener(new OnItemClickListener() {
-
-            @Override
-            public void onItemClick(AdapterView<?> parent, View view,
-                                    int position, long id) {
-                if (parent.getItemAtPosition(position) != null) {
-                    Intent intent = new Intent(SearchActivity.this,
-                            SearchResultActivity.class);
-                    intent.putExtra("key", parent.getItemAtPosition(position)
-                            .toString());
-                    startActivity(intent);
-                }
-            }
-        });
 
         et_search_key.setOnTouchListener(new OnTouchListener() {
 
@@ -197,6 +173,7 @@
                 // getCompoundDrawables() 鍙互鑾峰彇涓�涓暱搴︿负4鐨勬暟缁勶紝
                 // 瀛樻斁drawableLeft锛孯ight锛孴op锛孊ottom鍥涗釜鍥剧墖璧勬簮瀵硅薄
                 // index=2 琛ㄧず鐨勬槸 drawableRight 鍥剧墖璧勬簮瀵硅薄
+
                 Drawable drawable = et_search_key.getCompoundDrawables()[2];
                 if (drawable == null)
                     return false;
@@ -213,6 +190,7 @@
                 return false;
             }
         });
+
 
         gv_hot_search.setOnItemClickListener(new OnItemClickListener() {
 
@@ -250,20 +228,21 @@
     public void onResume() {
         super.onResume();
         getHistorySearch();
-        MobclickAgent.onPageStart("鎼滅储椤�");
     }
 
     @Override
     public void onPause() {
         super.onPause();
-        MobclickAgent.onPageEnd("鎼滅储椤�");
     }
 
     @Override
     public void onClick(final View v) {
         switch (v.getId()) {
             case R.id.tv_search_cancel:
-                finish();
+                if (fl_suggest.getVisibility() == View.VISIBLE) {
+                    hiddenSuggestFragment();
+                } else
+                    finish();
                 break;
             case R.id.tv_search_clear_his:
                 clearHistorySearch();
@@ -276,7 +255,41 @@
         }
     }
 
+
+    private void hiddenSuggestFragment() {
+        fl_suggest.setVisibility(View.GONE);
+        getSupportFragmentManager().beginTransaction().remove(suggestFragment).commitAllowingStateLoss();
+    }
+
+    private void showSuggestFragment(String key, List<String> list) {
+        Bundle bundle = new Bundle();
+        bundle.putString("key", key);
+        bundle.putString("list", new Gson().toJson(list));
+        fl_suggest.setVisibility(View.VISIBLE);
+//        if (suggestFragment.isAdded()) {
+//            return;
+//        }
+        suggestFragment.setItemClickListener(new SearchSuggestFragment.OnItemClickListener() {
+            @Override
+            public void onClick(String st) {
+                Intent intent = new Intent(SearchActivity.this,
+                        SearchResultActivity.class);
+                intent.putExtra("key", st);
+                startActivity(intent);
+                hiddenSuggestFragment();
+            }
+        });
+
+        suggestFragment.setArguments(bundle);
+        getSupportFragmentManager().beginTransaction().replace(R.id.fl_suggest, suggestFragment).commitAllowingStateLoss();
+    }
+
     private void suggestSearch(String key) {
+        if (StringUtils.isEmpty(key)) {
+            hiddenSuggestFragment();
+        }
+
+
         SharedPreferences preferences = getSharedPreferences("user",
                 Context.MODE_PRIVATE);
         String uid = preferences.getString("uid", "");
@@ -287,19 +300,29 @@
                     public void onSuccessPerfect(int statusCode,
                                                  Header[] headers, JSONObject jsonObject)
                             throws Exception {
+                        List<String> results = null;
                         if (jsonObject.getBoolean("IsPost")) {
                             Gson gson = new GsonBuilder().setFieldNamingPolicy(
                                     FieldNamingPolicy.UPPER_CAMEL_CASE)
                                     .create();
-                            List<String> results = gson.fromJson(jsonObject
+                            results = gson.fromJson(jsonObject
                                     .getJSONObject("Data").getJSONArray("data")
                                     .toString(), new TypeToken<List<String>>() {
                             }.getType());
 
-                            SuggestKeysAdapter adapter = new SuggestKeysAdapter(getApplicationContext(), results);
-                            et_search_key.setAdapter(adapter);
-                            adapter.notifyDataSetChanged();
+
+//                            SuggestKeysAdapter adapter = new SuggestKeysAdapter(getApplicationContext(), results);
+//                            et_search_key.setAdapter(adapter);
+//                            adapter.notifyDataSetChanged();
                         }
+
+                        if (results != null && results.size() > 0) {
+                            showSuggestFragment(key, results);
+                            suggestFragment.setData(key, results);
+                        } else {
+                            hiddenSuggestFragment();
+                        }
+
                     }
                 });
     }
@@ -364,11 +387,11 @@
 
     // 1.鍔犺浇骞垮憡锛屽厛璁剧疆鍔犺浇涓婁笅鏂囩幆澧冨拰鏉′欢
     private void initAdvertisement() {
-        AdUtil.AD_TYPE adType = AdUtil.getAdType(getApplicationContext(), AdUtil.POSITION_SEARCH);
+        AdUtil.AD_TYPE adType = AdUtil.getAdType(getApplicationContext(), AdPositionEnum.videoSearch);
         fl_advertisement.post(new Runnable() {
             @Override
             public void run() {
-                int width = fl_advertisement.getWidth()-fl_advertisement.getPaddingLeft()-fl_advertisement.getPaddingRight();
+                int width = fl_advertisement.getWidth() - fl_advertisement.getPaddingLeft() - fl_advertisement.getPaddingRight();
                 new ExpressAdManager(adType, getApplicationContext()).loadSearchAd(DimenUtils.px2dip(getApplicationContext(), width), new ExpressAdManager.IAdLoadListener() {
                     @Override
                     public void onSuccess(List<ExpressAdContainer> adList) {

--
Gitblit v1.8.0