Skip to content

Commit b3b7b86

Browse files
authored
Merge pull request #364 from opendocument-app/fix-menu
fix document menu
2 parents 49d013e + 786a582 commit b3b7b86

File tree

3 files changed

+26
-20
lines changed

3 files changed

+26
-20
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
33
xmlns:tools="http://schemas.android.com/tools"
44
android:installLocation="auto"
5-
android:versionCode="183"
6-
android:versionName="3.29"
5+
android:versionCode="184"
6+
android:versionName="3.30"
77
tools:ignore="GoogleAppIndexingWarning">
88

99
<uses-permission android:name="android.permission.INTERNET" />

app/src/main/java/at/tomtasche/reader/ui/activity/DocumentFragment.java

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import androidx.appcompat.app.ActionBar;
3232
import androidx.appcompat.app.AlertDialog;
3333
import androidx.appcompat.app.AppCompatActivity;
34+
import androidx.core.view.MenuProvider;
3435
import androidx.fragment.app.Fragment;
3536
import androidx.fragment.app.FragmentManager;
3637
import at.tomtasche.reader.R;
@@ -46,7 +47,7 @@
4647
import at.tomtasche.reader.ui.widget.PageView;
4748
import at.tomtasche.reader.ui.widget.ProgressDialogFragment;
4849

49-
public class DocumentFragment extends Fragment implements LoaderService.LoaderListener, ActionBar.TabListener {
50+
public class DocumentFragment extends Fragment implements LoaderService.LoaderListener, ActionBar.TabListener, MenuProvider {
5051

5152
private static final String SAVED_KEY_LAST_RESULT = "LAST_RESULT";
5253
private static final String SAVED_KEY_CURRENT_HTML_DIFF = "CURRENT_HTML_DIFF";
@@ -80,6 +81,8 @@ public class DocumentFragment extends Fragment implements LoaderService.LoaderLi
8081
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
8182
this.container = container;
8283

84+
getActivity().addMenuProvider(this, getActivity());
85+
8386
return super.onCreateView(inflater, container, savedInstanceState);
8487
}
8588

@@ -114,8 +117,6 @@ public void onActivityCreated(@Nullable Bundle savedInstanceState) {
114117

115118
mainHandler = new Handler();
116119

117-
setHasOptionsMenu(true);
118-
119120
MainActivity mainActivity = (MainActivity) getActivity();
120121
analyticsManager = mainActivity.getAnalyticsManager();
121122
configManager = mainActivity.getConfigManager();
@@ -154,17 +155,25 @@ public void onService(LoaderService service) {
154155
}
155156

156157
@Override
157-
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
158-
super.onCreateOptionsMenu(menu, inflater);
159-
158+
public void onCreateMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
160159
this.menu = menu;
161160

162161
menu.findItem(R.id.menu_fullscreen).setVisible(true);
163162
menu.findItem(R.id.menu_open_with).setVisible(true);
164163
menu.findItem(R.id.menu_share).setVisible(true);
165164
menu.findItem(R.id.menu_save).setVisible(true);
166165
menu.findItem(R.id.menu_print).setVisible(true);
167-
// the other menu items are dynamically enabled on document load
166+
167+
// the other menu items are dynamically enabled based on the loaded document
168+
if (lastResult != null) {
169+
prepareMenu(lastResult.loaderType);
170+
}
171+
}
172+
173+
@Override
174+
public boolean onMenuItemSelected(@NonNull MenuItem menuItem) {
175+
// TODO: handle menu item clicks here. currently done in Activity for historical reasons
176+
return false;
168177
}
169178

170179
@Override
@@ -378,12 +387,9 @@ public void onLoadSuccess(FileLoader.Result result) {
378387
return;
379388
}
380389

381-
382390
Activity activity = getActivity();
383391
FileLoader.Options options = result.options;
384392

385-
prepareMenu(result.loaderType);
386-
387393
analyticsManager.setCurrentScreen(activity, result.loaderType.toString() + "_" + options.fileType);
388394

389395
resetTabs();

app/src/main/java/at/tomtasche/reader/ui/activity/MainActivity.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import android.view.ActionMode;
2222
import android.view.KeyEvent;
2323
import android.view.Menu;
24+
import android.view.MenuInflater;
2425
import android.view.MenuItem;
2526
import android.view.View;
2627
import android.view.WindowManager;
@@ -33,6 +34,7 @@
3334
import androidx.appcompat.app.AlertDialog;
3435
import androidx.appcompat.app.AppCompatActivity;
3536
import androidx.appcompat.widget.SwitchCompat;
37+
import androidx.core.view.MenuProvider;
3638
import androidx.fragment.app.DialogFragment;
3739
import androidx.fragment.app.FragmentTransaction;
3840
import androidx.test.espresso.IdlingResource;
@@ -60,7 +62,7 @@
6062
import at.tomtasche.reader.ui.TtsActionModeCallback;
6163
import at.tomtasche.reader.ui.widget.RecentDocumentDialogFragment;
6264

63-
public class MainActivity extends AppCompatActivity {
65+
public class MainActivity extends AppCompatActivity implements MenuProvider {
6466

6567
// taken from: https://stackoverflow.com/a/36829889/198996
6668
private static boolean isTesting() {
@@ -190,6 +192,8 @@ public void onClick(View view) {
190192

191193
analyticsManager.setCurrentScreen(this, "screen_main");
192194
}
195+
196+
addMenuProvider(this, this);
193197
}
194198

195199
@Override
@@ -324,16 +328,12 @@ protected void onNewIntent(Intent intent) {
324328
}
325329

326330
@Override
327-
public boolean onCreateOptionsMenu(Menu menu) {
328-
super.onCreateOptionsMenu(menu);
329-
330-
getMenuInflater().inflate(R.menu.menu_main, menu);
331+
public void onCreateMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
332+
menuInflater.inflate(R.menu.menu_main, menu);
331333

332334
if (billingManager.hasPurchased()) {
333335
menu.findItem(R.id.menu_remove_ads).setVisible(false);
334336
}
335-
336-
return true;
337337
}
338338

339339
@Override
@@ -397,7 +397,7 @@ public void loadUri(Uri uri) {
397397
}
398398

399399
@Override
400-
public boolean onOptionsItemSelected(MenuItem item) {
400+
public boolean onMenuItemSelected(@NonNull MenuItem item) {
401401
int itemId = item.getItemId();
402402
if (itemId == R.id.menu_search) {
403403
FindActionModeCallback findActionModeCallback = new FindActionModeCallback(this);

0 commit comments

Comments
 (0)