/src/com/cyanogenmod/filemanager/parcelables/SearchInfoParcelable.java
Java | 234 lines | 106 code | 25 blank | 103 comment | 16 complexity | 9bf07e65cee17c0f66783a42a84e0606 MD5 | raw file
- /*
- * Copyright (C) 2012 The CyanogenMod Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package com.cyanogenmod.filemanager.parcelables;
- import android.os.Parcel;
- import android.os.Parcelable;
- import com.cyanogenmod.filemanager.FileManagerApplication;
- import com.cyanogenmod.filemanager.R;
- import com.cyanogenmod.filemanager.model.Query;
- import com.cyanogenmod.filemanager.model.SearchResult;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * A serializer/deserializer class for {@link "SearchActivity"}.
- */
- public class SearchInfoParcelable extends HistoryNavigable {
- private static final long serialVersionUID = 3051428434374087971L;
- private String mSearchDirectory;
- private List<SearchResult> mSearchResultList;
- private Query mSearchQuery;
- private boolean mSuccessNavigation = false;
- /**
- * Constructor of <code>SearchInfoParcelable</code>.
- */
- public SearchInfoParcelable() {
- super();
- }
- /**
- * Constructor of <code>SearchInfoParcelable</code>.
- *
- * @param in The parcel information
- */
- public SearchInfoParcelable(Parcel in) {
- readFromParcel(in);
- }
- /**
- * {@inheritDoc}
- */
- @Override
- public String getTitle() {
- return FileManagerApplication.getInstance().
- getResources().
- getString(
- R.string.search_result_name,
- this.mSearchQuery.getTerms());
- }
- /**
- * {@inheritDoc}
- */
- @Override
- public String getDescription() {
- return this.mSearchDirectory;
- }
- /**
- * Method that returns the directory where to search.
- *
- * @return String The directory where to search
- */
- public String getSearchDirectory() {
- return this.mSearchDirectory;
- }
- /**
- * Method that sets the directory where to search.
- *
- * @param searchDirectory The directory where to search
- */
- public void setSearchDirectory(String searchDirectory) {
- this.mSearchDirectory = searchDirectory;
- }
- /**
- * Method that returns the search result list.
- *
- * @return List<SearchResult> The search result list
- */
- public List<SearchResult> getSearchResultList() {
- return this.mSearchResultList;
- }
- /**
- * Method that sets the search result list.
- *
- * @param searchResultList The search result list
- */
- public void setSearchResultList(List<SearchResult> searchResultList) {
- this.mSearchResultList = searchResultList;
- }
- /**
- * Method that returns the query terms of the search.
- *
- * @return Query The query terms of the search
- */
- public Query getSearchQuery() {
- return this.mSearchQuery;
- }
- /**
- * Method that sets the query terms of the search.
- *
- * @param searchQuery The query terms of the search
- */
- public void setSearchQuery(Query searchQuery) {
- this.mSearchQuery = searchQuery;
- }
- /**
- * Method that returns if the search navigation was success.
- *
- * @return boolean If the search navigation was success
- */
- public boolean isSuccessNavigation() {
- return this.mSuccessNavigation;
- }
- /**
- * Method that returns if the search navigation was success.
- *
- * @param successNavigation If the search navigation was success
- */
- public void setSuccessNavigation(boolean successNavigation) {
- this.mSuccessNavigation = successNavigation;
- }
- /**
- * {@inheritDoc}
- */
- @Override
- public int describeContents() {
- return 0;
- }
- /**
- * {@inheritDoc}
- */
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- //- 0
- dest.writeInt(this.mSearchDirectory == null ? 0 : 1);
- if (this.mSearchDirectory != null) {
- dest.writeString(this.mSearchDirectory);
- }
- //- 1
- dest.writeInt(this.mSearchResultList == null ? 0 : 1);
- if (this.mSearchResultList != null) {
- dest.writeList(this.mSearchResultList);
- }
- //- 2
- dest.writeInt(this.mSearchQuery == null ? 0 : 1);
- if (this.mSearchQuery != null) {
- dest.writeSerializable(this.mSearchQuery);
- }
- //- 3
- dest.writeInt(this.mSuccessNavigation ? 1 : 0);
- }
- /**
- * Fill the object from the parcel information.
- *
- * @param in The parcel information to recreate the object
- */
- private void readFromParcel(Parcel in) {
- //- 0
- int hasSearchDirectory = in.readInt();
- if (hasSearchDirectory == 1) {
- this.mSearchDirectory = in.readString();
- }
- //- 1
- int hasSearchResultList = in.readInt();
- if (hasSearchResultList == 1) {
- List<SearchResult> searchResultList = new ArrayList<SearchResult>();
- in.readList(searchResultList, SearchInfoParcelable.class.getClassLoader());
- this.mSearchResultList = new ArrayList<SearchResult>(searchResultList);
- }
- //- 2
- int hasSearchQuery = in.readInt();
- if (hasSearchQuery == 1) {
- this.mSearchQuery = (Query)in.readSerializable();
- }
- //- 3
- this.mSuccessNavigation = in.readInt() != 1;
- }
- /**
- * The {@link android.os.Parcelable.Creator}.
- *
- * This field is needed for Android to be able to
- * create new objects, individually or as arrays.
- */
- public static final Parcelable.Creator<SearchInfoParcelable> CREATOR =
- new Parcelable.Creator<SearchInfoParcelable>() {
- /**
- * {@inheritDoc}
- */
- @Override
- public SearchInfoParcelable createFromParcel(Parcel in) {
- return new SearchInfoParcelable(in);
- }
- /**
- * {@inheritDoc}
- */
- @Override
- public SearchInfoParcelable[] newArray(int size) {
- return new SearchInfoParcelable[size];
- }
- };
- }