Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit fb9a42f7 authored by Eugene's avatar Eugene
Browse files

Update search activity

parent 5410a211
Loading
Loading
Loading
Loading
+37 −52
Original line number Diff line number Diff line
package org.asdtm.goodweather;

import android.app.SearchManager;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
@@ -13,16 +12,14 @@ import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.SearchView;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.SearchView;
import android.widget.TextView;

import org.asdtm.goodweather.model.CitySearch;
@@ -33,11 +30,10 @@ import org.asdtm.goodweather.utils.Constants;
import java.util.ArrayList;
import java.util.List;

public class SearchActivity extends AppCompatActivity implements SearchView.OnQueryTextListener {
public class SearchActivity extends AppCompatActivity {

    public static final String TAG = "SearchActivity";

    private final String APP_SETTINGS_NAME = "config";
    private final String APP_SETTINGS_CITY = "city";
    private final String APP_SETTINGS_COUNTRY_CODE = "country_code";
    private final String APP_SETTINGS_LATITUDE = "latitude";
@@ -55,15 +51,13 @@ public class SearchActivity extends AppCompatActivity implements SearchView.OnQu
        }
        setContentView(R.layout.activity_search);

        Toolbar toolbar = (Toolbar) findViewById(R.id.search_activity_toolbar);
        setSupportActionBar(toolbar);
        if (getSupportActionBar() != null) {
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        }
        setupActionBar();
        setupSearchView();

        String APP_SETTINGS_NAME = "config";
        mCityPref = getSharedPreferences(APP_SETTINGS_NAME, 0);

        RecyclerView recyclerView = (RecyclerView) findViewById(R.id.search_city_recycler_view);
        RecyclerView recyclerView = (RecyclerView) findViewById(R.id.search_recycler_view);
        recyclerView.setLayoutManager(new LinearLayoutManager(SearchActivity.this));

        mCites = new ArrayList<>();
@@ -73,6 +67,34 @@ public class SearchActivity extends AppCompatActivity implements SearchView.OnQu
        loadLastFoundCity();
    }

    private void setupSearchView() {
        SearchManager searchManager = (SearchManager) getSystemService(SEARCH_SERVICE);
        SearchView searchView = (SearchView) findViewById(R.id.search_view);
        searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
        searchView.setIconified(false);
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                mSearchCityAdapter.getFilter().filter(query);
                return true;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                mSearchCityAdapter.getFilter().filter(newText);
                return true;
            }
        });
    }

    private void setupActionBar() {
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        if (getSupportActionBar() != null) {
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        }
    }

    @Override
    protected void onResume() {
        super.onResume();
@@ -158,38 +180,15 @@ public class SearchActivity extends AppCompatActivity implements SearchView.OnQu
                protected void publishResults(CharSequence charSequence,
                                              FilterResults filterResults) {
                    mCites.clear();
                    if (filterResults.values != null) {
                        mCites.addAll((ArrayList<CitySearch>) filterResults.values);
                    }
                    notifyDataSetChanged();
                }
            };
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater menuInflater = getMenuInflater();
        menuInflater.inflate(R.menu.search, menu);

        SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        SearchView searchView = (SearchView) menu.findItem(R.id.menu_search_city).getActionView();

        searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
        searchView.setIconified(false);
        searchView.onActionViewExpanded();

        int searchPlateId = searchView.getContext().getResources().getIdentifier(
                "android:id/search_plate", null, null);
        View searchPlateView = searchView.findViewById(searchPlateId);
        if (searchPlateView != null) {
            int color = ContextCompat.getColor(SearchActivity.this, R.color.colorPrimary);
            searchPlateView.setBackgroundColor(color);
        }

        searchView.setOnQueryTextListener(this);

        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
@@ -201,20 +200,6 @@ public class SearchActivity extends AppCompatActivity implements SearchView.OnQu
        return super.onOptionsItemSelected(item);
    }

    @Override
    public boolean onQueryTextSubmit(String s) {
        mSearchCityAdapter.getFilter().filter(s);

        return true;
    }

    @Override
    public boolean onQueryTextChange(String s) {
        mSearchCityAdapter.getFilter().filter(s);

        return true;
    }

    private void setCity(CitySearch city) {
        SharedPreferences.Editor editor = mCityPref.edit();
        editor.putString(APP_SETTINGS_CITY, city.getCityName());
+32 −30
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
        xmlns:tools="http://schemas.android.com/tools"
<android.support.design.widget.CoordinatorLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/search_activity_layout"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/search.root"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true">

    <android.support.design.widget.AppBarLayout
            android:id="@+id/search.app_bar"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            android:layout_height="wrap_content"
            android:layout_width="match_parent">

        <android.support.v7.widget.Toolbar
            android:id="@+id/search_activity_toolbar"
            android:layout_width="0dp"
            android:layout_height="56dp"
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
            android:elevation="4dp"
                android:navigationIcon="?homeAsUpIndicator"
                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            app:layout_constraintTop_toTopOf="parent"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
            tools:layout_constraintRight_creator="1"
            app:layout_constraintRight_toRightOf="parent"
            tools:layout_constraintLeft_creator="1"
            app:layout_constraintLeft_toLeftOf="parent"/>
                tools:targetApi="lollipop">

            <android.support.v7.widget.SearchView
                    android:id="@+id/search_view"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:imeOptions="actionSearch|flagNoExtractUi"
                    android:inputType="textFilter"/>
        </android.support.v7.widget.Toolbar>

    </android.support.design.widget.AppBarLayout>

    <android.support.v7.widget.RecyclerView
            android:id="@+id/search_city_recycler_view"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:padding="4dp"
            app:layout_constraintTop_toBottomOf="@id/search_activity_toolbar"
            tools:layout_constraintRight_creator="1"
            android:layout_marginStart="8dp"
            android:layout_marginEnd="8dp"
            app:layout_constraintRight_toRightOf="parent"
            tools:layout_constraintLeft_creator="1"
            app:layout_constraintLeft_toLeftOf="parent"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"/>
</android.support.constraint.ConstraintLayout>
 No newline at end of file
            android:id="@+id/search.recycler_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</android.support.design.widget.CoordinatorLayout>
 No newline at end of file
+1 −3
Original line number Diff line number Diff line
@@ -2,7 +2,5 @@
<searchable
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:hint="@string/hint_activity_search"
    android:label="@string/title_activity_search"
    android:inputType="textFilter"
    android:imeOptions="actionSearch">
    android:label="@string/title_activity_search">
</searchable>
 No newline at end of file