├── app ├── .gitignore ├── src │ └── main │ │ ├── res │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ ├── values │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ └── layout │ │ │ └── activity_main.xml │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── gun0912 │ │ └── tedpermissiondemo │ │ ├── CoroutineActivity.kt │ │ ├── RxJava2Activity.java │ │ ├── NormalActivity.java │ │ ├── WindowPermissionActivity.java │ │ ├── RxJava3Activity.java │ │ └── MainActivity.java ├── proguard-rules.pro └── build.gradle ├── tedpermission ├── .gitignore ├── gradle.properties ├── src │ └── main │ │ ├── res │ │ ├── values-ko │ │ │ └── strings.xml │ │ └── values │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── java │ │ └── com │ │ │ └── gun0912 │ │ │ └── tedpermission │ │ │ ├── PermissionListener.java │ │ │ ├── TedPermissionResult.java │ │ │ ├── util │ │ │ └── ObjectUtils.java │ │ │ ├── provider │ │ │ └── TedPermissionProvider.java │ │ │ ├── TedPermissionUtil.java │ │ │ ├── PermissionBuilder.java │ │ │ └── TedPermissionActivity.java │ │ └── AndroidManifest.xml ├── build.gradle └── proguard-rules.pro ├── tedpermission-normal ├── .gitignore ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── gun0912 │ │ └── tedpermission │ │ └── normal │ │ └── TedPermission.java ├── build.gradle └── proguard-rules.pro ├── tedpermission-rx2 ├── .gitignore ├── gradle.properties ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── gun0912 │ │ └── tedpermission │ │ └── rx2 │ │ └── TedPermission.java ├── build.gradle └── proguard-rules.pro ├── tedpermission-rx3 ├── .gitignore ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── gun0912 │ │ └── tedpermission │ │ └── rx3 │ │ └── TedPermission.java ├── build.gradle └── proguard-rules.pro ├── tedpermission-coroutine ├── .gitignore ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ └── com │ │ └── gun0912 │ │ └── tedpermission │ │ └── coroutine │ │ └── TedPermission.kt ├── build.gradle └── proguard-rules.pro ├── Screenshot.png ├── Screenshot_1.png ├── Screenshot_2.png ├── denied_dialog.png ├── request_dialog.png ├── Screenshot_cases.png ├── google_play_150.png ├── setting_activity.png ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── settings.gradle ├── .gitignore ├── .travis.yml ├── dependencies.gradle ├── gradle.properties ├── gradlew.bat ├── gradlew └── README.md /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /tedpermission/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /tedpermission-normal/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /tedpermission-rx2/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /tedpermission-rx3/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /tedpermission-coroutine/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /tedpermission/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=tedpermission 2 | POM_NAME=TedPermission -------------------------------------------------------------------------------- /Screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParkSangGwon/TedPermission/HEAD/Screenshot.png -------------------------------------------------------------------------------- /Screenshot_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParkSangGwon/TedPermission/HEAD/Screenshot_1.png -------------------------------------------------------------------------------- /Screenshot_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParkSangGwon/TedPermission/HEAD/Screenshot_2.png -------------------------------------------------------------------------------- /denied_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParkSangGwon/TedPermission/HEAD/denied_dialog.png -------------------------------------------------------------------------------- /request_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParkSangGwon/TedPermission/HEAD/request_dialog.png -------------------------------------------------------------------------------- /tedpermission-rx3/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Screenshot_cases.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParkSangGwon/TedPermission/HEAD/Screenshot_cases.png -------------------------------------------------------------------------------- /google_play_150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParkSangGwon/TedPermission/HEAD/google_play_150.png -------------------------------------------------------------------------------- /setting_activity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParkSangGwon/TedPermission/HEAD/setting_activity.png -------------------------------------------------------------------------------- /tedpermission-rx2/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=tedpermission-rx2 2 | POM_NAME=TedPermission-Rx2 -------------------------------------------------------------------------------- /tedpermission-rx2/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /tedpermission-normal/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tedpermission-coroutine/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParkSangGwon/TedPermission/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParkSangGwon/TedPermission/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParkSangGwon/TedPermission/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParkSangGwon/TedPermission/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app', ':tedpermission', ':tedpermission-normal', ':tedpermission-rx2', ':tedpermission-rx3', ':tedpermission-coroutine' 2 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParkSangGwon/TedPermission/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ParkSangGwon/TedPermission/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | 10 | /.idea 11 | *.properties 12 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /tedpermission/src/main/res/values-ko/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 설정 6 | 닫기 7 | 확인 8 | 9 | -------------------------------------------------------------------------------- /tedpermission/src/main/java/com/gun0912/tedpermission/PermissionListener.java: -------------------------------------------------------------------------------- 1 | package com.gun0912.tedpermission; 2 | 3 | import java.util.List; 4 | 5 | public interface PermissionListener { 6 | 7 | void onPermissionGranted(); 8 | 9 | void onPermissionDenied(List deniedPermissions); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /tedpermission/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | TedPermission 3 | 4 | 5 | Setting 6 | Close 7 | Confirm 8 | 9 | 10 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: android 2 | jdk: oraclejdk8 3 | android: 4 | components: 5 | - tools 6 | - platform-tools 7 | - tools 8 | - build-tools-29.0.3 9 | - build-tools-25.0.0 10 | - build-tools-23.0.2 11 | - android-29 12 | - android-25 13 | - android-23 14 | - extra-android-m2repository 15 | - extra-google-m2repository 16 | script: 17 | - ./gradlew build 18 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | TedPermissionDemo 3 | 4 | 5 | Custom Close 6 | 7 | Permission required 8 | we need permission for write storage and find your location 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /tedpermission-normal/src/main/java/com/gun0912/tedpermission/normal/TedPermission.java: -------------------------------------------------------------------------------- 1 | package com.gun0912.tedpermission.normal; 2 | 3 | import com.gun0912.tedpermission.PermissionBuilder; 4 | 5 | public class TedPermission { 6 | public static final String TAG = TedPermission.class.getSimpleName(); 7 | 8 | public static Builder create() { 9 | return new Builder(); 10 | } 11 | 12 | public static class Builder extends PermissionBuilder { 13 | 14 | public void check() { 15 | checkPermissions(); 16 | } 17 | 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /dependencies.gradle: -------------------------------------------------------------------------------- 1 | ext { 2 | versions = [ 3 | 'minSdkVersion' : 14, 4 | 'compileSdkVersion': 34, 5 | 'targetSdkVersion' : 34, 6 | 'kotlin' : '1.9.10', 7 | ] 8 | 9 | deps = [ 10 | 'rx' : [ 11 | 'rxJava2': 'io.reactivex.rxjava2:rxjava:2.2.19', 12 | 'rxJava3': 'io.reactivex.rxjava3:rxjava:3.1.0', 13 | ], 14 | 15 | 16 | 'androidx': [ 17 | 'appcompat': "androidx.appcompat:appcompat:1.3.1", 18 | ], 19 | 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /tedpermission/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion versions.compileSdkVersion 5 | 6 | defaultConfig { 7 | minSdkVersion versions.minSdkVersion 8 | targetSdkVersion versions.targetSdkVersion 9 | } 10 | buildTypes { 11 | release { 12 | minifyEnabled false 13 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 14 | } 15 | } 16 | 17 | lintOptions { 18 | abortOnError false 19 | } 20 | } 21 | 22 | dependencies { 23 | implementation deps.androidx.appcompat 24 | } 25 | 26 | apply plugin: "com.vanniktech.maven.publish" -------------------------------------------------------------------------------- /tedpermission/src/main/java/com/gun0912/tedpermission/TedPermissionResult.java: -------------------------------------------------------------------------------- 1 | package com.gun0912.tedpermission; 2 | 3 | import com.gun0912.tedpermission.util.ObjectUtils; 4 | import java.util.List; 5 | 6 | public class TedPermissionResult { 7 | 8 | private boolean granted; 9 | private List deniedPermissions; 10 | 11 | public TedPermissionResult(List deniedPermissions) { 12 | this.granted = ObjectUtils.isEmpty(deniedPermissions); 13 | this.deniedPermissions = deniedPermissions; 14 | } 15 | 16 | public boolean isGranted() { 17 | return granted; 18 | } 19 | 20 | public List getDeniedPermissions() { 21 | return deniedPermissions; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /tedpermission-normal/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion versions.compileSdkVersion 5 | 6 | defaultConfig { 7 | minSdkVersion versions.minSdkVersion 8 | targetSdkVersion versions.targetSdkVersion 9 | } 10 | buildTypes { 11 | release { 12 | minifyEnabled false 13 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 14 | } 15 | } 16 | 17 | 18 | lintOptions { 19 | abortOnError false 20 | } 21 | } 22 | 23 | dependencies { 24 | api project(':tedpermission') 25 | implementation deps.androidx.appcompat 26 | } 27 | 28 | apply plugin: "com.vanniktech.maven.publish" 29 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/TedPark/Library/Android/sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /tedpermission/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/TedPark/Library/Android/sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /tedpermission-rx2/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion versions.compileSdkVersion 5 | 6 | defaultConfig { 7 | minSdkVersion versions.minSdkVersion 8 | targetSdkVersion versions.targetSdkVersion 9 | } 10 | buildTypes { 11 | release { 12 | minifyEnabled false 13 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 14 | } 15 | } 16 | 17 | 18 | lintOptions { 19 | abortOnError false 20 | } 21 | } 22 | 23 | dependencies { 24 | api project(':tedpermission') 25 | implementation deps.androidx.appcompat 26 | implementation deps.rx.rxJava2 27 | } 28 | 29 | apply plugin: "com.vanniktech.maven.publish" 30 | -------------------------------------------------------------------------------- /tedpermission-rx3/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion versions.compileSdkVersion 5 | 6 | defaultConfig { 7 | minSdkVersion versions.minSdkVersion 8 | targetSdkVersion versions.targetSdkVersion 9 | } 10 | buildTypes { 11 | release { 12 | minifyEnabled false 13 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 14 | } 15 | } 16 | 17 | 18 | lintOptions { 19 | abortOnError false 20 | } 21 | 22 | } 23 | 24 | dependencies { 25 | api project(':tedpermission') 26 | implementation deps.androidx.appcompat 27 | implementation deps.rx.rxJava3 28 | } 29 | 30 | apply plugin: "com.vanniktech.maven.publish" 31 | -------------------------------------------------------------------------------- /tedpermission/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 11 | 12 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /tedpermission/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 20 | 21 | -------------------------------------------------------------------------------- /tedpermission/src/main/java/com/gun0912/tedpermission/util/ObjectUtils.java: -------------------------------------------------------------------------------- 1 | package com.gun0912.tedpermission.util; 2 | 3 | import java.util.List; 4 | import java.util.Map; 5 | 6 | public class ObjectUtils { 7 | 8 | public static boolean isEmpty(Object s) { 9 | if (s == null) { 10 | return true; 11 | } 12 | if ((s instanceof String) && (((String)s).trim().length() == 0)) { 13 | return true; 14 | } 15 | if (s instanceof Map) { 16 | return ((Map)s).isEmpty(); 17 | } 18 | if (s instanceof List) { 19 | return ((List)s).isEmpty(); 20 | } 21 | if (s instanceof Object[]) { 22 | return (((Object[])s).length == 0); 23 | } 24 | return false; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /tedpermission-coroutine/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | apply plugin: 'kotlin-android' 3 | 4 | android { 5 | compileSdkVersion versions.compileSdkVersion 6 | 7 | defaultConfig { 8 | minSdkVersion versions.minSdkVersion 9 | targetSdkVersion versions.targetSdkVersion 10 | } 11 | buildTypes { 12 | release { 13 | minifyEnabled false 14 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 15 | } 16 | } 17 | 18 | 19 | lintOptions { 20 | abortOnError false 21 | } 22 | } 23 | 24 | dependencies { 25 | api project(':tedpermission') 26 | implementation deps.androidx.appcompat 27 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${versions.kotlin}" 28 | } 29 | 30 | apply plugin: "com.vanniktech.maven.publish" -------------------------------------------------------------------------------- /tedpermission-rx2/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/tedpark/Library/Android/sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | 19 | # Uncomment this to preserve the line number information for 20 | # debugging stack traces. 21 | #-keepattributes SourceFile,LineNumberTable 22 | 23 | # If you keep the line number information, uncomment this to 24 | # hide the original source file name. 25 | #-renamesourcefileattribute SourceFile 26 | -------------------------------------------------------------------------------- /tedpermission-rx3/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/tedpark/Library/Android/sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | 19 | # Uncomment this to preserve the line number information for 20 | # debugging stack traces. 21 | #-keepattributes SourceFile,LineNumberTable 22 | 23 | # If you keep the line number information, uncomment this to 24 | # hide the original source file name. 25 | #-renamesourcefileattribute SourceFile 26 | -------------------------------------------------------------------------------- /tedpermission-normal/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/tedpark/Library/Android/sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | 19 | # Uncomment this to preserve the line number information for 20 | # debugging stack traces. 21 | #-keepattributes SourceFile,LineNumberTable 22 | 23 | # If you keep the line number information, uncomment this to 24 | # hide the original source file name. 25 | #-renamesourcefileattribute SourceFile 26 | -------------------------------------------------------------------------------- /tedpermission-coroutine/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/tedpark/Library/Android/sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | 19 | # Uncomment this to preserve the line number information for 20 | # debugging stack traces. 21 | #-keepattributes SourceFile,LineNumberTable 22 | 23 | # If you keep the line number information, uncomment this to 24 | # hide the original source file name. 25 | #-renamesourcefileattribute SourceFile 26 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 |