├── app ├── .gitignore ├── src │ └── main │ │ ├── assets │ │ └── xposed_init │ │ ├── res │ │ ├── drawable-hdpi │ │ │ └── ic_nlp_app.png │ │ ├── drawable-mdpi │ │ │ └── ic_nlp_app.png │ │ ├── drawable-xhdpi │ │ │ └── ic_nlp_app.png │ │ ├── drawable-xxhdpi │ │ │ └── ic_nlp_app.png │ │ ├── values │ │ │ ├── dimens.xml │ │ │ └── strings.xml │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ ├── menu │ │ │ └── menu_settings.xml │ │ └── layout │ │ │ └── activity_settings.xml │ │ ├── java │ │ └── be │ │ │ └── r3w6 │ │ │ └── xposedunifiednlp │ │ │ ├── PackageCheckStep.java │ │ │ ├── CheckStep.java │ │ │ ├── NetworkLocationCheckStep.java │ │ │ ├── UnifiedNlp.java │ │ │ ├── LocationCheckStep.java │ │ │ └── Settings.java │ │ └── AndroidManifest.xml ├── libs │ └── XposedBridgeApi-54.jar ├── proguard-rules.pro ├── build.gradle └── manifest-merger-release-report.txt ├── settings.gradle ├── .gitignore ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── README.md ├── gradlew.bat └── gradlew /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /app/src/main/assets/xposed_init: -------------------------------------------------------------------------------- 1 | be.r3w6.xposedunifiednlp.UnifiedNlp 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /local.properties 3 | /.idea 4 | .DS_Store 5 | /build 6 | *.iml 7 | *.ipr 8 | *.iws 9 | *.apk -------------------------------------------------------------------------------- /app/libs/XposedBridgeApi-54.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Intika-Android-Apps/XposedGmsCoreUnifiedNlp/HEAD/app/libs/XposedBridgeApi-54.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Intika-Android-Apps/XposedGmsCoreUnifiedNlp/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_nlp_app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Intika-Android-Apps/XposedGmsCoreUnifiedNlp/HEAD/app/src/main/res/drawable-hdpi/ic_nlp_app.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_nlp_app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Intika-Android-Apps/XposedGmsCoreUnifiedNlp/HEAD/app/src/main/res/drawable-mdpi/ic_nlp_app.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_nlp_app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Intika-Android-Apps/XposedGmsCoreUnifiedNlp/HEAD/app/src/main/res/drawable-xhdpi/ic_nlp_app.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_nlp_app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Intika-Android-Apps/XposedGmsCoreUnifiedNlp/HEAD/app/src/main/res/drawable-xxhdpi/ic_nlp_app.png -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Apr 10 15:27:10 PDT 2013 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip 7 | -------------------------------------------------------------------------------- /app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_settings.xml: -------------------------------------------------------------------------------- 1 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | XposedGmsCoreUnifiedNlp 5 | Settings 6 | Hello world! 7 | Settings 8 | Check Settings 9 | Checking... 10 | 11 | 12 | -------------------------------------------------------------------------------- /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 D:\adt-bundle-windows-x86_64-20140321\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 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle context. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle context configured through the IDE *will override* 5 | # any context specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory context. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /app/src/main/java/be/r3w6/xposedunifiednlp/PackageCheckStep.java: -------------------------------------------------------------------------------- 1 | package be.r3w6.xposedunifiednlp; 2 | 3 | import android.content.Context; 4 | import android.content.pm.PackageManager; 5 | 6 | /** 7 | * Created on 13.02.2015. 8 | */ 9 | class PackageCheckStep extends CheckStep { 10 | private Context context; 11 | 12 | public PackageCheckStep(Context context) { 13 | super("UnifiedNlp package"); 14 | this.context = context; 15 | } 16 | 17 | @Override 18 | public void runStep() { 19 | try { 20 | context.getPackageManager().getPackageInfo("com.google.android.gms", PackageManager.GET_ACTIVITIES); 21 | setState(StepState.SUCCESS); 22 | } catch (PackageManager.NameNotFoundException e) { 23 | setState(StepState.FAIL); 24 | } 25 | } 26 | 27 | @Override 28 | public String getSolution() { 29 | return "Please download and install the latest UnifiedNlp.apk from the UnifiedNlp release page."; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/be/r3w6/xposedunifiednlp/CheckStep.java: -------------------------------------------------------------------------------- 1 | package be.r3w6.xposedunifiednlp; 2 | 3 | import android.util.Log; 4 | 5 | /** 6 | * Created on 13.02.2015. 7 | */ 8 | public abstract class CheckStep { 9 | public CheckStep(String name) { 10 | this.name = name; 11 | } 12 | 13 | protected abstract void runStep(); 14 | 15 | private String name; 16 | private StepState state = StepState.WAIT; 17 | private String solution; 18 | 19 | public String getName() { 20 | return name; 21 | } 22 | 23 | public StepState getState() { 24 | return state; 25 | } 26 | 27 | protected void setState(StepState state) { 28 | Log.i("CheckStep", getName() + "s state changed to " + state); 29 | this.state = state; 30 | } 31 | 32 | public void setSolution(String solution) { 33 | this.solution = solution; 34 | } 35 | public String getSolution() { 36 | if(solution == null) 37 | return "No known solution"; 38 | return solution; 39 | } 40 | 41 | public enum StepState { 42 | WAIT, 43 | SUCCESS, 44 | FAIL, 45 | RUNNING, SKIPPED 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | 15 | apply plugin: 'com.android.application' 16 | 17 | android { 18 | compileSdkVersion 27 19 | defaultConfig { 20 | applicationId "be.r3w6.intika.xposedunifiednlp" 21 | minSdkVersion 15 22 | targetSdkVersion 25 23 | versionCode 4 24 | versionName "1.0.4-Beta-AndroidN" 25 | } 26 | buildTypes { 27 | release { 28 | } 29 | } 30 | buildToolsVersion '26.0.2' 31 | } 32 | 33 | dependencies { 34 | compileOnly fileTree(include: ['*.jar'], dir: 'libs') 35 | compile 'com.android.support:appcompat-v7:27.0.2' 36 | } 37 | -------------------------------------------------------------------------------- /app/src/main/java/be/r3w6/xposedunifiednlp/NetworkLocationCheckStep.java: -------------------------------------------------------------------------------- 1 | package be.r3w6.xposedunifiednlp; 2 | 3 | import android.content.Context; 4 | import android.location.LocationManager; 5 | 6 | /** 7 | * Created on 13.02.2015. 8 | */ 9 | class NetworkLocationCheckStep extends CheckStep { 10 | private Context context; 11 | 12 | public NetworkLocationCheckStep(Context context) { 13 | super("Network-based geolocation"); 14 | this.context = context; 15 | } 16 | 17 | @Override 18 | public void runStep() { 19 | LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); 20 | if(locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) { 21 | setState(StepState.SUCCESS); 22 | } else { 23 | setState(StepState.FAIL); 24 | } 25 | } 26 | 27 | @Override 28 | public String getSolution() { 29 | return "Please activate network-based geolocation in Settings->Location. Since KitKat, you need to select any mode but \"device only\", on older Android version this setting is called \"Wi-Fi & mobile network location\" (ignore any misleading texts saying this is for Google's location service)"; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 14 | 17 | 20 | 23 | 24 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_settings.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 |