Skip to content

Commit

Permalink
Drop native Fragment support
Browse files Browse the repository at this point in the history
  • Loading branch information
shiraji committed Jun 26, 2018
1 parent f745322 commit cb7d58b
Show file tree
Hide file tree
Showing 6 changed files with 2 additions and 291 deletions.
29 changes: 0 additions & 29 deletions library/src/main/java/permissions/dispatcher/PermissionUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
import androidx.core.app.AppOpsManagerCompat;
import androidx.core.content.PermissionChecker;
import androidx.fragment.app.Fragment;
import androidx.legacy.app.FragmentCompat;

public final class PermissionUtils {
// Map of dangerous permissions introduced in later framework versions.
Expand Down Expand Up @@ -145,32 +144,4 @@ public static boolean shouldShowRequestPermissionRationale(Fragment fragment, St
return false;
}

/**
* Checks given permissions are needed to show rationale.
*
* @param fragment fragment
* @param permissions permission list
* @return returns true if one of the permission is needed to show rationale.
*/
@Deprecated
public static boolean shouldShowRequestPermissionRationale(android.app.Fragment fragment, String... permissions) {
for (String permission : permissions) {
if (FragmentCompat.shouldShowRequestPermissionRationale(fragment, permission)) {
return true;
}
}
return false;
}

/**
* Requests the provided permissions for a Fragment instance.
*
* @param fragment fragment
* @param permissions permissions list
* @param requestCode Request code connected to the permission request
*/
@Deprecated
public static void requestPermissions(android.app.Fragment fragment, String[] permissions, int requestCode) {
FragmentCompat.requestPermissions(fragment, permissions, requestCode);
}
}
Original file line number Diff line number Diff line change
@@ -1,19 +1,15 @@
package permissions.dispatcher.processor.impl

import permissions.dispatcher.processor.impl.java.JavaActivityProcessorUnit
import permissions.dispatcher.processor.impl.java.JavaNativeFragmentProcessorUnit
import permissions.dispatcher.processor.impl.java.JavaSupportFragmentProcessorUnit
import permissions.dispatcher.processor.impl.kotlin.KotlinActivityProcessorUnit
import permissions.dispatcher.processor.impl.kotlin.KotlinNativeFragmentProcessorUnit
import permissions.dispatcher.processor.impl.kotlin.KotlinSupportFragmentProcessorUnit
import javax.annotation.processing.Messager

fun javaProcessorUnits(messager: Messager) = listOf(
JavaActivityProcessorUnit(messager),
JavaSupportFragmentProcessorUnit(messager),
JavaNativeFragmentProcessorUnit(messager))
JavaSupportFragmentProcessorUnit(messager))

fun kotlinProcessorUnits(messager: Messager) = listOf(
KotlinActivityProcessorUnit(messager),
KotlinSupportFragmentProcessorUnit(messager),
KotlinNativeFragmentProcessorUnit(messager))
KotlinSupportFragmentProcessorUnit(messager))

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,6 @@ public class ProcessorTestSuite extends TestSuite {
assertJavaSource(Source.NoPermissionSupportFragment);
}

@Test public void noPermissionNativeFragment() {
expectRuntimeException("Annotated class 'MyFragment' doesn't have any method annotated with '@NeedsPermission'");
assertJavaSource(Source.NoPermissionNativeFragment);
}

@Test public void permissionWithNonVoidReturnType() {
expectRuntimeException("Method 'showCamera()' must specify return type 'void', not 'int'");
assertJavaSource(Source.PermissionWithNonVoidReturnType);
Expand Down Expand Up @@ -153,10 +148,6 @@ public class ProcessorTestSuite extends TestSuite {
assertJavaSource(Source.OnePermissionSupportFragment);
}

@Test public void onePermissionNativeFragment() {
assertJavaSource(Source.OnePermissionNativeFragment);
}

@Test public void onePermissionWithParametersActivity() {
assertJavaSource(Source.OnePermissionWithParametersActivity);
}
Expand Down Expand Up @@ -342,10 +333,6 @@ public class ProcessorTestSuite extends TestSuite {
assertJavaSource(Source.WriteSettingsSupportFragment);
}

@Test public void writeSettingsNativeFragment() {
assertJavaSource(Source.WriteSettingsNativeFragment);
}

@Test public void writeSettingsActivity() {
assertJavaSource(Source.WriteSettingsActivity);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,31 +34,6 @@ protected String[] getExpectSource() {
}
};

public static final BaseTest NoPermissionNativeFragment = new BaseTest() {
@Override
protected String getName() {
return "MyFragment";
}

@Override
protected String[] getActualSource() {
return new String[]{
"package tests;",
"import android.Manifest;",
"import android.app.Fragment;",
"import permissions.dispatcher.RuntimePermissions;",
"@RuntimePermissions",
"public class MyFragment extends Fragment {",
"}"
};
}

@Override
protected String[] getExpectSource() {
return EMPTY_SOURCE;
}
};

public static final BaseTest NoPermissionSupportFragment = new BaseTest() {
@Override
protected String getName() {
Expand Down Expand Up @@ -896,65 +871,6 @@ protected String[] getExpectSource() {
}
};

public static final BaseTest OnePermissionNativeFragment = new BaseTest() {
@Override
protected String getName() {
return "MyFragment";
}

@Override
protected String[] getActualSource() {
return new String[]{
"package tests;",
"import android.Manifest;",
"import android.app.Fragment;",
"import permissions.dispatcher.RuntimePermissions;",
"import permissions.dispatcher.NeedsPermission;",
"@RuntimePermissions",
"public class MyFragment extends Fragment {",
" @NeedsPermission(Manifest.permission.CAMERA)",
" void showCamera() {",
" }",
"}"
};
}

@Override
protected String[] getExpectSource() {
return new String[]{
"package tests;",
"import java.lang.Deprecated;",
"import java.lang.String;",
"import permissions.dispatcher.PermissionUtils;",
"@Deprecated",
"final class MyFragmentPermissionsDispatcher {",
" private static final int REQUEST_SHOWCAMERA = 0;",
" private static final String[] PERMISSION_SHOWCAMERA = new String[] {\"android.permission.CAMERA\"};",
" private MyFragmentPermissionsDispatcher() {",
" }",
" static void showCameraWithPermissionCheck(MyFragment target) {",
" if (PermissionUtils.hasSelfPermissions(target.getActivity(), PERMISSION_SHOWCAMERA)) {",
" target.showCamera();",
" } else {",
" PermissionUtils.requestPermissions(target, PERMISSION_SHOWCAMERA, REQUEST_SHOWCAMERA);",
" }",
" }",
" static void onRequestPermissionsResult(MyFragment target, int requestCode, int[] grantResults) {",
" switch (requestCode) {",
" case REQUEST_SHOWCAMERA:",
" if (PermissionUtils.verifyPermissions(grantResults)) {",
" target.showCamera();",
" }",
" break;",
" default:",
" break;",
" }",
" }",
"}"
};
}
};

public static final BaseTest OnePermissionWithParametersActivity = new BaseTest() {
@Override
protected String getName() {
Expand Down Expand Up @@ -5102,114 +5018,6 @@ protected String[] getExpectSource() {
}
};

public static final BaseTest WriteSettingsNativeFragment = new BaseTest() {
@Override
protected String getName() {
return "MyFragment";
}

@Override
protected String[] getActualSource() {
return new String[]{
"package test;",
"import android.Manifest;",
"import android.app.Fragment;",
"import permissions.dispatcher.NeedsPermission;",
"import permissions.dispatcher.OnNeverAskAgain;",
"import permissions.dispatcher.OnPermissionDenied;",
"import permissions.dispatcher.OnShowRationale;",
"import permissions.dispatcher.PermissionRequest;",
"import permissions.dispatcher.RuntimePermissions;",
"@RuntimePermissions",
"public class MyFragment extends Fragment {",
" @NeedsPermission(Manifest.permission.WRITE_SETTINGS)",
" void writeSettings() {",
" }",
" @OnShowRationale(Manifest.permission.WRITE_SETTINGS)",
" void writeSettingOnShowRationale(PermissionRequest request) {",
" }",
" @OnPermissionDenied(Manifest.permission.WRITE_SETTINGS)",
" void writeSettingOnPermissionDenied() {",
" }",
" @OnNeverAskAgain(Manifest.permission.WRITE_SETTINGS)",
" void writeSettingOnNeverAskAgain() {",
" }",
"}"
};
}

@Override
protected String[] getExpectSource() {
return new String[]{
"package test;",
"import android.content.Intent;",
"import android.net.Uri;",
"import android.provider.Settings;",
"import java.lang.Deprecated;",
"import java.lang.Override;",
"import java.lang.String;",
"import java.lang.ref.WeakReference;",
"import permissions.dispatcher.PermissionRequest;",
"import permissions.dispatcher.PermissionUtils;",
"@Deprecated",
"final class MyFragmentPermissionsDispatcher {",
" private static final int REQUEST_WRITESETTINGS = 0;",
" private static final String[] PERMISSION_WRITESETTINGS = new String[] {\"android.permission.WRITE_SETTINGS\"};",
" private MyFragmentPermissionsDispatcher() {",
" }",
" static void writeSettingsWithPermissionCheck(MyFragment target) {",
" if (PermissionUtils.hasSelfPermissions(target.getActivity(), PERMISSION_WRITESETTINGS) || Settings.System.canWrite(target.getActivity())) {",
" target.writeSettings();",
" } else {",
" if (PermissionUtils.shouldShowRequestPermissionRationale(target, PERMISSION_WRITESETTINGS)) {",
" target.writeSettingOnShowRationale(new MyFragmentWriteSettingsPermissionRequest(target));",
" } else {",
" Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri.parse(\"package:\" + target.getActivity().getPackageName()));",
" target.startActivityForResult(intent, REQUEST_WRITESETTINGS);",
" }",
" }",
" }",
" static void onActivityResult(MyFragment target, int requestCode) {",
" switch (requestCode) {",
" case REQUEST_WRITESETTINGS:",
" if (PermissionUtils.hasSelfPermissions(target.getActivity(), PERMISSION_WRITESETTINGS) || Settings.System.canWrite(target.getActivity())) {",
" target.writeSettings();",
" } else {",
" if (!PermissionUtils.shouldShowRequestPermissionRationale(target, PERMISSION_WRITESETTINGS)) {",
" target.writeSettingOnNeverAskAgain();",
" } else {",
" target.writeSettingOnPermissionDenied();",
" }",
" }",
" break;",
" default:",
" break;",
" }",
" }",
" private static final class MyFragmentWriteSettingsPermissionRequest implements PermissionRequest {",
" private final WeakReference<MyFragment> weakTarget;",
" private MyFragmentWriteSettingsPermissionRequest(MyFragment target) {",
" this.weakTarget = new WeakReference<MyFragment>(target);",
" }",
" @Override",
" public void proceed() {",
" MyFragment target = weakTarget.get();",
" if (target == null) return;",
" Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri.parse(\"package:\" + target.getActivity().getPackageName()));",
" target.startActivityForResult(intent, REQUEST_WRITESETTINGS);",
" }",
" @Override",
" public void cancel() {",
" MyFragment target = weakTarget.get();",
" if (target == null) return;",
" target.writeSettingOnPermissionDenied();",
" }",
" }",
"}"
};
}
};

public static final BaseTest SystemAlertWindowSupportFragment = new BaseTest() {
@Override
protected String getName() {
Expand Down

0 comments on commit cb7d58b

Please sign in to comment.