Skip to content

Commit

Permalink
Merge pull request #364 from opendocument-app/fix-menu
Browse files Browse the repository at this point in the history
fix document menu
  • Loading branch information
TomTasche authored Jul 23, 2024
2 parents 49d013e + 786a582 commit b3b7b86
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 20 deletions.
4 changes: 2 additions & 2 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:installLocation="auto"
android:versionCode="183"
android:versionName="3.29"
android:versionCode="184"
android:versionName="3.30"
tools:ignore="GoogleAppIndexingWarning">

<uses-permission android:name="android.permission.INTERNET" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.view.MenuProvider;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import at.tomtasche.reader.R;
Expand All @@ -46,7 +47,7 @@
import at.tomtasche.reader.ui.widget.PageView;
import at.tomtasche.reader.ui.widget.ProgressDialogFragment;

public class DocumentFragment extends Fragment implements LoaderService.LoaderListener, ActionBar.TabListener {
public class DocumentFragment extends Fragment implements LoaderService.LoaderListener, ActionBar.TabListener, MenuProvider {

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

getActivity().addMenuProvider(this, getActivity());

return super.onCreateView(inflater, container, savedInstanceState);
}

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

mainHandler = new Handler();

setHasOptionsMenu(true);

MainActivity mainActivity = (MainActivity) getActivity();
analyticsManager = mainActivity.getAnalyticsManager();
configManager = mainActivity.getConfigManager();
Expand Down Expand Up @@ -154,17 +155,25 @@ public void onService(LoaderService service) {
}

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);

public void onCreateMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
this.menu = menu;

menu.findItem(R.id.menu_fullscreen).setVisible(true);
menu.findItem(R.id.menu_open_with).setVisible(true);
menu.findItem(R.id.menu_share).setVisible(true);
menu.findItem(R.id.menu_save).setVisible(true);
menu.findItem(R.id.menu_print).setVisible(true);
// the other menu items are dynamically enabled on document load

// the other menu items are dynamically enabled based on the loaded document
if (lastResult != null) {
prepareMenu(lastResult.loaderType);
}
}

@Override
public boolean onMenuItemSelected(@NonNull MenuItem menuItem) {
// TODO: handle menu item clicks here. currently done in Activity for historical reasons
return false;
}

@Override
Expand Down Expand Up @@ -378,12 +387,9 @@ public void onLoadSuccess(FileLoader.Result result) {
return;
}


Activity activity = getActivity();
FileLoader.Options options = result.options;

prepareMenu(result.loaderType);

analyticsManager.setCurrentScreen(activity, result.loaderType.toString() + "_" + options.fileType);

resetTabs();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import android.view.ActionMode;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.WindowManager;
Expand All @@ -33,6 +34,7 @@
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.SwitchCompat;
import androidx.core.view.MenuProvider;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.FragmentTransaction;
import androidx.test.espresso.IdlingResource;
Expand Down Expand Up @@ -60,7 +62,7 @@
import at.tomtasche.reader.ui.TtsActionModeCallback;
import at.tomtasche.reader.ui.widget.RecentDocumentDialogFragment;

public class MainActivity extends AppCompatActivity {
public class MainActivity extends AppCompatActivity implements MenuProvider {

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

analyticsManager.setCurrentScreen(this, "screen_main");
}

addMenuProvider(this, this);
}

@Override
Expand Down Expand Up @@ -324,16 +328,12 @@ protected void onNewIntent(Intent intent) {
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);

getMenuInflater().inflate(R.menu.menu_main, menu);
public void onCreateMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
menuInflater.inflate(R.menu.menu_main, menu);

if (billingManager.hasPurchased()) {
menu.findItem(R.id.menu_remove_ads).setVisible(false);
}

return true;
}

@Override
Expand Down Expand Up @@ -397,7 +397,7 @@ public void loadUri(Uri uri) {
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
public boolean onMenuItemSelected(@NonNull MenuItem item) {
int itemId = item.getItemId();
if (itemId == R.id.menu_search) {
FindActionModeCallback findActionModeCallback = new FindActionModeCallback(this);
Expand Down

0 comments on commit b3b7b86

Please sign in to comment.