Kaydet (Commit) e86c4d39 authored tarafından aleksandar-stefanovic's avatar aleksandar-stefanovic Kaydeden (comit) Aleksandar Stefanović

Moved file filtering to a menu option

Moved file filtering from a toolbar spinner to a menu option.
The toolbar title is now free to display some other information.
The options are grouped, so they display radio buttons, and show
which item is selected. The radio group default selection is the
one defined in the settings.

Change-Id: Ib8d8716ec0038d2cd273423c756563680b84ae55
Reviewed-on: https://gerrit.libreoffice.org/34019Reviewed-by: 's avatarAleksandar Stefanović <theonewithideas@gmail.com>
Tested-by: 's avatarAleksandar Stefanović <theonewithideas@gmail.com>
üst 6d537d75
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M10,18h4v-2h-4v2zM3,6v2h18L21,6L3,6zM6,13h12v-2L6,11v2z"/>
</vector>
......@@ -9,12 +9,24 @@
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- The toolbar -->
<include layout="@layout/toolbar" />
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="3dp"
android:background="@color/toolbar_background"
app:theme="@style/LibreOfficeTheme.Toolbar"
tools:theme="@style/LibreOfficeTheme.Toolbar"
app:popupTheme="@style/LibreOfficeTheme">
</android.support.v7.widget.Toolbar>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
......
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="3dp"
android:background="@color/toolbar_background"
app:theme="@style/LibreOfficeTheme.Toolbar"
tools:theme="@style/LibreOfficeTheme.Toolbar"
app:popupTheme="@style/LibreOfficeTheme">
<android.support.v7.widget.AppCompatSpinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/toolbar_spinner"/>
</android.support.v7.widget.Toolbar>
......@@ -2,6 +2,33 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_filter"
android:title="@string/filter"
android:icon="@drawable/ic_filter_list_black_24dp"
app:showAsAction="ifRoom">
<menu>
<group
android:checkableBehavior="single">
<item
android:id="@+id/menu_filter_everything"
android:title="@string/filter_everything" />
<item
android:id="@+id/menu_filter_documents"
android:title="@string/filter_documents" />
<item
android:id="@+id/menu_filter_spreadsheets"
android:title="@string/filter_spreadsheets" />
<item
android:id="@+id/menu_filter_presentations"
android:title="@string/filter_presentations" />
<item
android:id="@+id/menu_filter_drawings"
android:title="@string/filter_drawings" />
</group>
</menu>
</item>
<item
android:id="@+id/menu_sort"
android:title="@string/sort"
......
......@@ -30,22 +30,13 @@
<item >1</item>
</string-array>
<!-- Preference Name Arrays
This has to be in sync with FileUtilities.java. -->
<string-array name="file_view_modes">
<string-array name="FilterTypeNames">
<item>Everything</item>
<item>Documents</item>
<item>Spreadsheets</item>
<item>Presentations</item>
<item>Drawings</item>
</string-array>
<string-array name="FilterTypeNames">
<item >Everything</item>
<item >Documents</item>
<item >Spreadsheets</item>
<item >Presentations</item>
</string-array>
<string-array name="SortModeNames">
<item >A-Z</item>
<item >Z-A</item>
......
......@@ -50,6 +50,13 @@
<string name="share">Share</string>
<string name="share_via">Share via</string>
<!-- Document browser filters -->
<string name="filter_everything">Everything</string>
<string name="filter_documents">Documents</string>
<string name="filter_spreadsheets">Spreadsheets</string>
<string name="filter_presentations">Presentations</string>
<string name="filter_drawings">Drawings</string>
<!-- Document provider names -->
<string name="document_locations">Document locations</string>
<string name="close_document_locations">Close document locations</string>
......
......@@ -134,28 +134,7 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayHomeAsUpEnabled(true);
//make the navigation spinner
Context context = actionBar.getThemedContext();
AppCompatSpinner toolbarSpinner = (AppCompatSpinner) findViewById(R.id.toolbar_spinner);
ArrayAdapter<CharSequence> spinnerAdapter = ArrayAdapter.createFromResource(context, R.array.file_view_modes, android.R.layout.simple_spinner_item);
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
toolbarSpinner.setAdapter(spinnerAdapter);
toolbarSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int pos, long id) {
filterMode = pos -1; //bit of a hack, I know. -1 is ALL 0 Docs etc
openDirectory(currentDirectory);// Uses filter mode
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
filterMode = FileUtilities.ALL;
openDirectory(currentDirectory);
}
});
}
recentRecyclerView = (RecyclerView) findViewById(R.id.list_recent);
......@@ -551,6 +530,28 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings
item.setTitle(R.string.sort_newest);
}
switch (filterMode) {
case FileUtilities.ALL:
menu.findItem(R.id.menu_filter_everything).setChecked(true);
break;
case FileUtilities.DOC:
menu.findItem(R.id.menu_filter_documents).setChecked(true);
break;
case FileUtilities.CALC:
menu.findItem(R.id.menu_filter_presentations).setChecked(true);
break;
case FileUtilities.IMPRESS:
menu.findItem(R.id.menu_filter_presentations).setChecked(true);
break;
case FileUtilities.DRAWING:
menu.findItem(R.id.menu_filter_drawings).setChecked(true);
break;
}
return true;
}
......@@ -567,6 +568,37 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings
openParentDirectory();
}
break;
case R.id.menu_filter_everything:
item.setChecked(true);
filterMode = FileUtilities.ALL;
openDirectory(currentDirectory);
break;
case R.id.menu_filter_documents:
item.setChecked(true);
filterMode = FileUtilities.DOC;
openDirectory(currentDirectory);
break;
case R.id.menu_filter_spreadsheets:
item.setChecked(true);
filterMode = FileUtilities.CALC;
openDirectory(currentDirectory);
break;
case R.id.menu_filter_presentations:
item.setChecked(true);
filterMode = FileUtilities.IMPRESS;
openDirectory(currentDirectory);
break;
case R.id.menu_filter_drawings:
item.setChecked(true);
filterMode = FileUtilities.DRAWING;
openDirectory(currentDirectory);
break;
case R.id.menu_sort_size:
case R.id.menu_sort_az:
case R.id.menu_sort_modified:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment