diff --git a/docs-android/app/src/main/java/com/sismics/docs/activity/DocumentEditActivity.java b/docs-android/app/src/main/java/com/sismics/docs/activity/DocumentEditActivity.java index 56cde065..cea2d4f4 100644 --- a/docs-android/app/src/main/java/com/sismics/docs/activity/DocumentEditActivity.java +++ b/docs-android/app/src/main/java/com/sismics/docs/activity/DocumentEditActivity.java @@ -84,8 +84,10 @@ public class DocumentEditActivity extends AppCompatActivity { // Setup the activity setContentView(R.layout.document_edit_activity); - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - getSupportActionBar().setHomeButtonEnabled(true); + if (getSupportActionBar() != null) { + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setHomeButtonEnabled(true); + } languageSpinner = (Spinner) findViewById(R.id.languageSpinner); tagsEditText = (TagsCompleteTextView) findViewById(R.id.tagsEditText); datePickerView = (DatePickerView) findViewById(R.id.dateEditText); @@ -93,7 +95,7 @@ public class DocumentEditActivity extends AppCompatActivity { descriptionEditText = (EditText) findViewById(R.id.descriptionEditText); // Language spinner - LanguageAdapter languageAdapter = new LanguageAdapter(this); + LanguageAdapter languageAdapter = new LanguageAdapter(this, false); languageSpinner.setAdapter(languageAdapter); // Tags auto-complete diff --git a/docs-android/app/src/main/java/com/sismics/docs/adapter/LanguageAdapter.java b/docs-android/app/src/main/java/com/sismics/docs/adapter/LanguageAdapter.java index f2d481d3..f5b74788 100644 --- a/docs-android/app/src/main/java/com/sismics/docs/adapter/LanguageAdapter.java +++ b/docs-android/app/src/main/java/com/sismics/docs/adapter/LanguageAdapter.java @@ -25,9 +25,12 @@ public class LanguageAdapter extends BaseAdapter { private List languageList; - public LanguageAdapter(Context context) { + public LanguageAdapter(Context context, boolean noValue) { this.context = context; this.languageList = new ArrayList<>(); + if (noValue) { + languageList.add(new Language("", R.string.all_languages, 0)); + } languageList.add(new Language("fra", R.string.language_french, R.drawable.fra)); languageList.add(new Language("eng", R.string.language_english, R.drawable.eng)); languageList.add(new Language("jpn", R.string.language_japanese, R.drawable.jpn)); diff --git a/docs-android/app/src/main/java/com/sismics/docs/fragment/SearchFragment.java b/docs-android/app/src/main/java/com/sismics/docs/fragment/SearchFragment.java index 55003d23..b0d3ff52 100644 --- a/docs-android/app/src/main/java/com/sismics/docs/fragment/SearchFragment.java +++ b/docs-android/app/src/main/java/com/sismics/docs/fragment/SearchFragment.java @@ -8,9 +8,20 @@ import android.support.annotation.NonNull; import android.support.v4.app.DialogFragment; import android.view.LayoutInflater; import android.view.View; +import android.widget.Spinner; import com.sismics.docs.R; +import com.sismics.docs.adapter.LanguageAdapter; +import com.sismics.docs.adapter.TagAutoCompleteAdapter; import com.sismics.docs.event.SearchEvent; +import com.sismics.docs.ui.view.TagsCompleteTextView; +import com.sismics.docs.util.PreferenceUtil; + +import org.json.JSONArray; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.List; import de.greenrobot.event.EventBus; @@ -38,6 +49,29 @@ public class SearchFragment extends DialogFragment { // Setup the view LayoutInflater inflater = getActivity().getLayoutInflater(); View view = inflater.inflate(R.layout.search_dialog, null); + Spinner languageSpinner = (Spinner) view.findViewById(R.id.languageSpinner); + TagsCompleteTextView tagsEditText = (TagsCompleteTextView) view.findViewById(R.id.tagsEditText); + + // Language spinner + LanguageAdapter languageAdapter = new LanguageAdapter(getActivity(), true); + languageSpinner.setAdapter(languageAdapter); + + // Tags auto-complete + JSONObject tags = PreferenceUtil.getCachedJson(getActivity(), PreferenceUtil.PREF_CACHED_TAGS_JSON); + if (tags == null) { + Dialog dialog = builder.create(); + dialog.cancel(); + return dialog; + } + JSONArray tagArray = tags.optJSONArray("stats"); + + List tagList = new ArrayList<>(); + for (int i = 0; i < tagArray.length(); i++) { + tagList.add(tagArray.optJSONObject(i)); + } + + tagsEditText.allowDuplicates(false); + tagsEditText.setAdapter(new TagAutoCompleteAdapter(getActivity(), 0, tagList)); // Build the dialog builder.setView(view) diff --git a/docs-android/app/src/main/res/layout/search_dialog.xml b/docs-android/app/src/main/res/layout/search_dialog.xml index b6fef058..52d76d8c 100644 --- a/docs-android/app/src/main/res/layout/search_dialog.xml +++ b/docs-android/app/src/main/res/layout/search_dialog.xml @@ -11,112 +11,112 @@ + android:hint="@string/simple_search"/> + android:hint="@string/fulltext_search"/> + android:layout_margin="8dp"/> + android:layout_height="wrap_content" + android:layout_margin="8dp" + android:gravity="center_vertical"> + android:textSize="18sp"/> + android:layout_height="wrap_content"/> + android:layout_height="wrap_content" + android:gravity="center_vertical" + android:layout_margin="8dp"> + android:textSize="18sp"/> + android:textSize="18sp"/> + android:layout_height="wrap_content" + android:layout_margin="8dp" + android:gravity="center_vertical"> + android:textSize="18sp"/> + android:textSize="18sp"/> + android:hint="@string/search_tags"/> diff --git a/docs-android/app/src/main/res/values/strings.xml b/docs-android/app/src/main/res/values/strings.xml index b3d07f8f..45ada4d6 100644 --- a/docs-android/app/src/main/res/values/strings.xml +++ b/docs-android/app/src/main/res/values/strings.xml @@ -99,6 +99,12 @@ Creation date Description Title + Simple search + Fulltext search + After date + Before date + Search tags + All languages