Skip to content

Commit 0020f2c

Browse files
committed
Revert "don't use androidx.fragment 1.3.0-alpha08 for now"
This reverts commit 6260bcb
1 parent 95ed5a9 commit 0020f2c

File tree

3 files changed

+29
-42
lines changed

3 files changed

+29
-42
lines changed

app/build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ dependencies {
3939
implementation 'com.google.android.material:material:1.2.0'
4040
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
4141
implementation "androidx.core:core-ktx:1.3.1"
42+
implementation "androidx.fragment:fragment:1.3.0-alpha08"
4243
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0"
4344
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
4445
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.9"

app/src/main/java/org/grapheneos/pdfviewer/PdfViewerFragment.java

+23-30
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.grapheneos.pdfviewer;
22

33
import android.annotation.SuppressLint;
4-
import android.app.Activity;
54
import android.content.Intent;
65
import android.content.res.ColorStateList;
76
import android.graphics.Color;
@@ -26,6 +25,9 @@
2625
import android.widget.TextView;
2726
import android.widget.Toast;
2827

28+
import androidx.activity.result.ActivityResultCallback;
29+
import androidx.activity.result.ActivityResultLauncher;
30+
import androidx.activity.result.contract.ActivityResultContracts;
2931
import androidx.annotation.NonNull;
3032
import androidx.annotation.Nullable;
3133
import androidx.fragment.app.Fragment;
@@ -74,9 +76,6 @@ public class PdfViewerFragment extends Fragment {
7476
"usb 'none'; " +
7577
"vr 'none'";
7678

77-
private static final int REQUEST_CODE_JUMP_PAGE = 1000;
78-
private static final int REQUEST_CODE_ACTION_OPEN_DOCUMENT = 1001;
79-
8079
private static final float MIN_ZOOM_RATIO = 0.5f;
8180
private static final float MAX_ZOOM_RATIO = 1.5f;
8281
private static final int ALPHA_LOW = 130;
@@ -184,25 +183,11 @@ public static PdfViewerFragment newInstance() {
184183
public void onCreate(Bundle savedInstanceState) {
185184
super.onCreate(savedInstanceState);
186185
setHasOptionsMenu(true);
187-
}
188-
189-
// Can be replaced when support for passing results between two Fragments
190-
// via new APIs on FragmentManager arrive (Androidx Fragment 1.3.0)
191-
@Override
192-
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
193-
if (requestCode == REQUEST_CODE_JUMP_PAGE) {
194-
if (resultCode == Activity.RESULT_OK) {
195-
final int newPage = data.getIntExtra(JumpToPageFragment.INTENT_KEY, -1);
196-
onJumpToPageInDocument(newPage);
197-
}
198-
} else if (requestCode == REQUEST_CODE_ACTION_OPEN_DOCUMENT) {
199-
if (resultCode == Activity.RESULT_OK && data != null) {
200-
mViewModel.setUri(data.getData());
201-
mViewModel.setPage(1);
202-
loadPdf(true);
203-
requireActivity().invalidateOptionsMenu();
204-
}
205-
}
186+
getParentFragmentManager().setFragmentResultListener(JumpToPageFragment.REQUEST_KEY,
187+
this, (requestKey, result) -> {
188+
final int newPage = result.getInt(JumpToPageFragment.BUNDLE_KEY);
189+
onJumpToPageInDocument(newPage);
190+
});
206191
}
207192

208193
@Override
@@ -431,11 +416,20 @@ private void documentOrientationChanged(final int orientationDegreesOffset) {
431416
renderPage(0);
432417
}
433418

419+
private ActivityResultLauncher<String> mGetDocumentUriLauncher = registerForActivityResult(
420+
new ActivityResultContracts.GetContent(), new ActivityResultCallback<Uri>() {
421+
@Override
422+
public void onActivityResult(Uri uri) {
423+
if (uri != null) {
424+
mViewModel.setUri(uri);
425+
mViewModel.setPage(1);
426+
loadPdf(true);
427+
}
428+
}
429+
});
430+
434431
private void openDocument() {
435-
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
436-
intent.addCategory(Intent.CATEGORY_OPENABLE);
437-
intent.setType("application/pdf");
438-
startActivityForResult(intent, REQUEST_CODE_ACTION_OPEN_DOCUMENT);
432+
mGetDocumentUriLauncher.launch("application/pdf");
439433
}
440434

441435
private void zoomIn(float value, boolean end) {
@@ -595,9 +589,8 @@ public boolean onOptionsItemSelected(MenuItem item) {
595589
return true;
596590

597591
case R.id.action_jump_to_page:
598-
final JumpToPageFragment fragment = new JumpToPageFragment();
599-
fragment.setTargetFragment(this, REQUEST_CODE_JUMP_PAGE);
600-
fragment.show(getParentFragmentManager(), JumpToPageFragment.TAG);
592+
new JumpToPageFragment()
593+
.show(getParentFragmentManager(), JumpToPageFragment.TAG);
601594
return true;
602595

603596
default:

app/src/main/java/org/grapheneos/pdfviewer/fragment/JumpToPageFragment.java

+5-12
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package org.grapheneos.pdfviewer.fragment;
22

3-
import android.app.Activity;
43
import android.app.Dialog;
54
import android.content.DialogInterface;
6-
import android.content.Intent;
75
import android.os.Bundle;
86
import android.view.Gravity;
97
import android.widget.FrameLayout;
@@ -18,8 +16,8 @@
1816
public class JumpToPageFragment extends DialogFragment {
1917
public static final String TAG = "JumpToPageFragment";
2018

21-
public static final int REQUEST_CODE = 1000;
22-
public static final String INTENT_KEY = "jumpToPageBundle";
19+
public static final String REQUEST_KEY = "jumpToPage";
20+
public static final String BUNDLE_KEY = "jumpToPageBundle";
2321

2422
private final static String STATE_PICKER_CUR = "picker_cur";
2523
private final static String STATE_PICKER_MIN = "picker_min";
@@ -59,15 +57,10 @@ public Dialog onCreateDialog(Bundle savedInstanceState) {
5957
@Override
6058
public void onClick(DialogInterface dialogInterface, int i) {
6159
mPicker.clearFocus();
62-
if (getTargetFragment() == null) {
63-
return;
64-
}
6560

66-
Intent data = new Intent();
67-
data.putExtra(INTENT_KEY, mPicker.getValue());
68-
69-
getTargetFragment().onActivityResult(REQUEST_CODE, Activity.RESULT_OK,
70-
data);
61+
Bundle result = new Bundle();
62+
result.putInt(BUNDLE_KEY, mPicker.getValue());
63+
getParentFragmentManager().setFragmentResult(REQUEST_KEY, result);
7164
}
7265
})
7366
.setNegativeButton(android.R.string.cancel, null)

0 commit comments

Comments
 (0)