summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--android/source/res/menu/view_menu.xml25
-rw-r--r--android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java121
2 files changed, 83 insertions, 63 deletions
diff --git a/android/source/res/menu/view_menu.xml b/android/source/res/menu/view_menu.xml
index 2b99ad15e1ab..67f059647989 100644
--- a/android/source/res/menu/view_menu.xml
+++ b/android/source/res/menu/view_menu.xml
@@ -35,12 +35,25 @@
android:icon="@drawable/ic_sort_black_24dp"
app:showAsAction="ifRoom">
<menu>
- <item android:id="@+id/menu_sort_size"
- android:title="@string/menu_sort_size" />
- <item android:id="@+id/menu_sort_az"
- android:title="@string/menu_sort_az"/>
- <item android:id="@+id/menu_sort_modified"
- android:title="@string/menu_sort_modified"/>
+ <group android:checkableBehavior="single">
+ <item android:id="@+id/menu_sort_size_asc"
+ android:title="@string/sort_smallest" />
+
+ <item android:id="@+id/menu_sort_size_desc"
+ android:title="@string/sort_largest" />
+
+ <item android:id="@+id/menu_sort_az"
+ android:title="@string/sort_az"/>
+
+ <item android:id="@+id/menu_sort_za"
+ android:title="@string/sort_za"/>
+
+ <item android:id="@+id/menu_sort_modified_newest"
+ android:title="@string/sort_newest"/>
+
+ <item android:id="@+id/menu_sort_modified_oldest"
+ android:title="@string/sort_oldest"/>
+ </group>
</menu>
</item>
<item android:id="@+id/action_settings"
diff --git a/android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java b/android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
index a4daa454a346..4861a8e7468e 100644
--- a/android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
+++ b/android/source/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
@@ -526,25 +526,36 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.view_menu, menu);
- MenuItem item = menu.findItem(R.id.menu_sort_size);
- if (sortMode == FileUtilities.SORT_LARGEST) {
- item.setTitle(R.string.sort_smallest);
- } else {
- item.setTitle(R.string.sort_largest);
- }
+ switch (sortMode) {
+ case FileUtilities.SORT_SMALLEST: {
+ menu.findItem(R.id.menu_sort_size_asc).setChecked(true);
+ }
+ break;
- item = menu.findItem(R.id.menu_sort_az);
- if (sortMode == FileUtilities.SORT_AZ) {
- item.setTitle(R.string.sort_za);
- } else {
- item.setTitle(R.string.sort_az);
- }
+ case FileUtilities.SORT_LARGEST: {
+ menu.findItem(R.id.menu_sort_size_desc).setChecked(true);
+ }
+ break;
- item = menu.findItem(R.id.menu_sort_modified);
- if (sortMode == FileUtilities.SORT_NEWEST) {
- item.setTitle(R.string.sort_oldest);
- } else {
- item.setTitle(R.string.sort_newest);
+ case FileUtilities.SORT_AZ: {
+ menu.findItem(R.id.menu_sort_az).setChecked(true);
+ }
+ break;
+
+ case FileUtilities.SORT_ZA: {
+ menu.findItem(R.id.menu_sort_za).setChecked(true);
+ }
+ break;
+
+ case FileUtilities.SORT_NEWEST: {
+ menu.findItem(R.id.menu_sort_modified_newest).setChecked(true);
+ }
+ break;
+
+ case FileUtilities.SORT_OLDEST: {
+ menu.findItem(R.id.menu_sort_modified_oldest).setChecked(true);
+ }
+ break;
}
switch (filterMode) {
@@ -616,11 +627,42 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings
openDirectory(currentDirectory);
break;
- case R.id.menu_sort_size:
- case R.id.menu_sort_az:
- case R.id.menu_sort_modified:
- sortFiles(item);
- break;
+ case R.id.menu_sort_size_asc: {
+ sortMode = FileUtilities.SORT_SMALLEST;
+ this.onResume();
+ }
+ break;
+
+ case R.id.menu_sort_size_desc: {
+ sortMode = FileUtilities.SORT_LARGEST;
+ this.onResume();
+ }
+ break;
+
+ case R.id.menu_sort_az: {
+ sortMode = FileUtilities.SORT_AZ;
+ this.onResume();
+ }
+ break;
+
+ case R.id.menu_sort_za: {
+ sortMode = FileUtilities.SORT_ZA;
+ this.onResume();
+ }
+ break;
+
+ case R.id.menu_sort_modified_newest: {
+ sortMode = FileUtilities.SORT_NEWEST;
+ this.onResume();
+ }
+ break;
+
+ case R.id.menu_sort_modified_oldest: {
+ sortMode = FileUtilities.SORT_OLDEST;
+ this.onResume();
+ }
+ break;
+
case R.id.action_about: {
AboutDialogFragment aboutDialogFragment = new AboutDialogFragment();
aboutDialogFragment.show(getSupportFragmentManager(), "AboutDialogFragment");
@@ -636,41 +678,6 @@ public class LibreOfficeUIActivity extends AppCompatActivity implements Settings
return true;
}
- public void sortFiles(MenuItem item){
- switch (item.getItemId()) {
- case R.id.menu_sort_az:
- if (sortMode == FileUtilities.SORT_AZ){
- sortMode = FileUtilities.SORT_ZA;
- item.setTitle(R.string.sort_az);
- } else {
- sortMode = FileUtilities.SORT_AZ;
- item.setTitle(R.string.sort_za);
- }
- break;
- case R.id.menu_sort_modified:
- if (sortMode == FileUtilities.SORT_NEWEST){
- sortMode = FileUtilities.SORT_OLDEST;
- item.setTitle(R.string.sort_newest);
- } else {
- sortMode = FileUtilities.SORT_NEWEST;
- item.setTitle(R.string.sort_oldest);
- }
- break;
- case R.id.menu_sort_size:
- if (sortMode == FileUtilities.SORT_LARGEST){
- sortMode = FileUtilities.SORT_SMALLEST;
- item.setTitle(R.string.sort_largest);
- } else {
- sortMode = FileUtilities.SORT_LARGEST;
- item.setTitle(R.string.sort_smallest);
- }
- break;
- default:
- break;
- }
- this.onResume();
- }
-
public void readPreferences(){
prefs = getSharedPreferences(EXPLORER_PREFS_KEY, MODE_PRIVATE);
sortMode = prefs.getInt(SORT_MODE_KEY, FileUtilities.SORT_AZ);