-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
79 changed files
with
1,868 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -63,3 +63,5 @@ fastlane/Preview.html | |
fastlane/screenshots | ||
fastlane/test_output | ||
fastlane/readme.md | ||
|
||
\.idea/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
/build |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
def version = "1" | ||
def milestone = "0" | ||
def build = "0" | ||
|
||
def versionNum = version.toInteger() * 10000 + milestone.toInteger() * 100 + build.toInteger() | ||
def versionText = version + "." + milestone + "." + build | ||
|
||
apply plugin: 'com.android.application' | ||
apply plugin: 'kotlin-android' | ||
apply plugin: 'kotlin-android-extensions' | ||
apply plugin: 'kotlin-kapt' | ||
|
||
android { | ||
compileSdkVersion 28 | ||
defaultConfig { | ||
applicationId "info.megahard.epshowcase" | ||
minSdkVersion 15 | ||
targetSdkVersion 28 | ||
versionCode versionNum | ||
versionName versionText | ||
resValue "string", "app_version", 'v ' + versionText | ||
|
||
javaCompileOptions { | ||
annotationProcessorOptions { | ||
arguments = [toothpick_registry_package_name: 'info.megahard.epshowcase.toothpick'] | ||
} | ||
} | ||
} | ||
lintOptions { | ||
abortOnError false | ||
} | ||
dataBinding { | ||
enabled = true | ||
} | ||
buildTypes { | ||
release { | ||
minifyEnabled false | ||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' | ||
} | ||
} | ||
applicationVariants.all { variant -> | ||
variant.outputs.all { output -> | ||
def newName = name + "-" + versionText + ".apk" | ||
output.outputFileName = newName | ||
} | ||
} | ||
} | ||
|
||
dependencies { | ||
implementation fileTree(dir: 'libs', include: ['*.jar']) | ||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" | ||
// Support | ||
implementation 'androidx.appcompat:appcompat:1.0.0-beta01' | ||
implementation 'com.google.android.material:material:1.0.0-beta01' | ||
implementation 'androidx.legacy:legacy-support-v4:1.0.0-beta01' | ||
implementation 'androidx.recyclerview:recyclerview:1.0.0-beta01' | ||
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0' | ||
implementation 'androidx.constraintlayout:constraintlayout:1.1.3' | ||
implementation 'android.arch.navigation:navigation-fragment:1.0.0-alpha09' | ||
implementation 'android.arch.navigation:navigation-ui:1.0.0-alpha09' | ||
|
||
// Toothpick | ||
implementation 'com.github.stephanenicolas.toothpick:toothpick-runtime:1.1.3' | ||
kapt "com.github.stephanenicolas.toothpick:toothpick-compiler:1.1.3" | ||
// Timber | ||
implementation 'com.jakewharton.timber:timber:4.7.1' | ||
// Retrofit | ||
implementation 'com.squareup.retrofit2:retrofit:2.3.0' | ||
implementation 'com.squareup.retrofit2:converter-gson:2.3.0' | ||
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0' | ||
// Rx | ||
implementation 'io.reactivex.rxjava2:rxjava:2.2.2' | ||
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0' | ||
implementation 'com.jakewharton.rxbinding2:rxbinding-appcompat-v7:2.0.0' | ||
// OkHttp | ||
implementation 'com.squareup.okhttp3:okhttp:3.12.0' | ||
implementation 'com.squareup.okhttp3:logging-interceptor:3.9.0' | ||
// Glide | ||
implementation 'com.github.bumptech.glide:glide:4.8.0' | ||
kapt 'com.github.bumptech.glide:compiler:4.8.0' | ||
implementation 'com.github.bumptech.glide:okhttp3-integration:4.8.0' | ||
// FragmentWithArgs | ||
implementation 'com.hannesdorfmann.fragmentargs:annotation:3.0.2' | ||
kapt 'com.hannesdorfmann.fragmentargs:processor:3.0.2' | ||
// Tests | ||
testImplementation 'junit:junit:4.12' | ||
androidTestImplementation 'androidx.test:runner:1.1.1' | ||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,152 @@ | ||
# Add project specific ProGuard rules here. | ||
# You can control the set of applied configuration files using the | ||
# proguardFiles setting in build.gradle. | ||
# | ||
# For more details, see | ||
# http://developer.android.com/guide/developing/tools/proguard.html | ||
|
||
# If your project uses WebView with JS, uncomment the following | ||
# and specify the fully qualified class name to the JavaScript interface | ||
# class: | ||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview { | ||
# public *; | ||
#} | ||
|
||
# Uncomment this to preserve the line number information for | ||
# debugging stack traces. | ||
-keepattributes SourceFile,LineNumberTable | ||
|
||
# If you keep the line number information, uncomment this to | ||
# hide the original source file name. | ||
#-renamesourcefileattribute SourceFile | ||
|
||
### Glide | ||
|
||
-keep public class * implements com.bumptech.glide.module.GlideModule | ||
-keep public class * extends com.bumptech.glide.module.AppGlideModule | ||
-keep public enum com.bumptech.glide.load.ImageHeaderParser$** { | ||
**[] $VALUES; | ||
public *; | ||
} | ||
# for DexGuard only | ||
#-keepresourcexmlelements manifest/application/meta-data@value=GlideModule | ||
|
||
|
||
### Retrofit | ||
|
||
# Platform calls Class.forName on types which do not exist on Android to determine platform. | ||
-dontnote retrofit2.Platform | ||
# Platform used when running on Java 8 VMs. Will not be used at runtime. | ||
-dontwarn retrofit2.Platform$Java8 | ||
# Retain generic type information for use by reflection by converters and adapters. | ||
-keepattributes Signature | ||
# Retain declared checked exceptions for use by a Proxy instance. | ||
-keepattributes Exceptions | ||
|
||
|
||
### okhttp3 | ||
|
||
-dontwarn okhttp3.** | ||
-dontwarn okio.** | ||
-dontwarn javax.annotation.** | ||
-dontwarn org.conscrypt.** | ||
# A resource is loaded with a relative path so the package of this class must be preserved. | ||
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase | ||
|
||
### Apache http | ||
|
||
-dontnote android.net.http.* | ||
-dontnote org.apache.commons.codec.** | ||
-dontnote org.apache.http.** | ||
|
||
### Toothpick | ||
|
||
-adaptclassstrings ** | ||
-dontwarn toothpick.** | ||
|
||
# Do not obfuscate annotation scoped classes | ||
-keepnames @javax.inject.Singleton class * | ||
|
||
### Support | ||
|
||
-keepnames class android.support.v7.app.AppCompatViewInflater | ||
-keep class android.support.v7.widget.SearchView { *; } | ||
-keep class android.support.v7.view.menu.MenuBuilder { *; } | ||
-keep class android.support.v7.widget.Toolbar { *; } | ||
|
||
-keepclassmembers class android.support.design.internal.BottomNavigationMenuView { | ||
boolean mShiftingMode; | ||
} | ||
|
||
### GSON | ||
|
||
# Gson uses generic type information stored in a class file when working with fields. Proguard | ||
# removes such information by default, so configure it to keep all of it. | ||
-keepattributes Signature | ||
|
||
# For using GSON @Expose annotation | ||
-keepattributes *Annotation* | ||
|
||
# Gson specific classes | ||
-dontwarn sun.misc.** | ||
#-keep class com.google.gson.stream.** { *; } | ||
|
||
# Application classes that will be serialized/deserialized over Gson | ||
-keep class com.google.gson.examples.android.model.** { *; } | ||
|
||
# Prevent proguard from stripping interface information from TypeAdapterFactory, | ||
# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter) | ||
-keep class * implements com.google.gson.TypeAdapterFactory | ||
-keep class * implements com.google.gson.JsonSerializer | ||
-keep class * implements com.google.gson.JsonDeserializer | ||
|
||
### App | ||
|
||
-keep public class * extends com.radiantsystem.rs4otrs.base.BaseViewModel | ||
-keepclassmembers enum com.radiantsystem.rs4otrs.model.** { *; } | ||
-keepclassmembers enum com.radiantsystem.rs4otrs.net.model.** { *; } | ||
|
||
### Guava | ||
|
||
-keep class com.google.common.io.Resources { | ||
public static <methods>; | ||
} | ||
-keep class com.google.common.collect.Lists { | ||
public static ** reverse(**); | ||
} | ||
-keep class com.google.common.base.Charsets { | ||
public static <fields>; | ||
} | ||
|
||
-keep class com.google.common.base.Joiner { | ||
public static com.google.common.base.Joiner on(java.lang.String); | ||
public ** join(...); | ||
} | ||
|
||
-keep class com.google.common.collect.MapMakerInternalMap$ReferenceEntry | ||
-keep class com.google.common.cache.LocalCache$ReferenceEntry | ||
|
||
-dontwarn javax.annotation.** | ||
-dontwarn javax.inject.** | ||
-dontwarn sun.misc.Unsafe | ||
|
||
-dontwarn java.lang.ClassValue | ||
-dontwarn com.google.j2objc.annotations.Weak | ||
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement | ||
|
||
-dontwarn afu.org.checkerframework.** | ||
-dontwarn org.checkerframework.** | ||
-dontwarn com.google.errorprone.annotations.CanIgnoreReturnValue | ||
-dontwarn com.google.errorprone.annotations.concurrent.LazyInit | ||
-dontwarn com.google.errorprone.annotations.ForOverride | ||
-dontwarn com.google.common.collect.MinMaxPriorityQueue | ||
-dontwarn com.google.common.util.concurrent.FuturesGetChecked** | ||
-dontwarn javax.lang.model.element.Modifier | ||
|
||
### Jericho | ||
|
||
-dontwarn org.apache.logging.log4j.LogManager | ||
-dontwarn org.apache.logging.log4j.Logger | ||
-dontwarn org.slf4j.LoggerFactory | ||
-dontwarn org.slf4j.Logger | ||
-dontwarn org.apache.logging.log4j.Level |
22 changes: 22 additions & 0 deletions
22
app/src/androidTest/java/info/megahard/epshowcase/ExampleInstrumentedTest.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
package info.megahard.epshowcase | ||
|
||
import androidx.test.InstrumentationRegistry | ||
import androidx.test.runner.AndroidJUnit4 | ||
import org.junit.Assert.assertEquals | ||
import org.junit.Test | ||
import org.junit.runner.RunWith | ||
|
||
/** | ||
* Instrumented test, which will execute on an Android device. | ||
* | ||
* See [testing documentation](http://d.android.com/tools/testing). | ||
*/ | ||
@RunWith(AndroidJUnit4::class) | ||
class ExampleInstrumentedTest { | ||
@Test | ||
fun useAppContext() { | ||
// Context of the app under test. | ||
val appContext = InstrumentationRegistry.getTargetContext() | ||
assertEquals("info.megahard.epshowcase", appContext.packageName) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||
xmlns:tools="http://schemas.android.com/tools" | ||
package="info.megahard.epshowcase"> | ||
|
||
<uses-permission android:name="android.permission.INTERNET" /> | ||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> | ||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> | ||
|
||
<application | ||
android:name=".app.App" | ||
android:allowBackup="true" | ||
android:icon="@mipmap/ic_launcher" | ||
android:label="@string/app_name" | ||
android:roundIcon="@mipmap/ic_launcher_round" | ||
android:supportsRtl="true" | ||
android:theme="@style/AppTheme" | ||
android:hardwareAccelerated="true" | ||
tools:ignore="GoogleAppIndexingWarning"> | ||
|
||
<activity | ||
android:name=".main.MainActivity" | ||
android:label="@string/app_name" | ||
android:theme="@style/AppTheme.NoActionBar"> | ||
<intent-filter> | ||
<action android:name="android.intent.action.MAIN" /> | ||
|
||
<category android:name="android.intent.category.LAUNCHER" /> | ||
</intent-filter> | ||
</activity> | ||
|
||
</application> | ||
|
||
</manifest> |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
package info.megahard.epshowcase.app | ||
|
||
import android.app.Application | ||
import info.megahard.epshowcase.BuildConfig | ||
import timber.log.Timber | ||
import toothpick.Toothpick | ||
import toothpick.Toothpick.setConfiguration | ||
import toothpick.configuration.Configuration.forDevelopment | ||
import toothpick.configuration.Configuration.forProduction | ||
import toothpick.registries.FactoryRegistryLocator | ||
import toothpick.registries.MemberInjectorRegistryLocator | ||
|
||
class App : Application() { | ||
override fun onCreate() { | ||
super.onCreate() | ||
|
||
Timber.plant(Timber.DebugTree()) | ||
|
||
val configuration = if (BuildConfig.DEBUG) forDevelopment() else forProduction() | ||
|
||
setConfiguration(configuration.disableReflection()) | ||
FactoryRegistryLocator.setRootRegistry(info.megahard.epshowcase.toothpick.FactoryRegistry()) | ||
MemberInjectorRegistryLocator.setRootRegistry(info.megahard.epshowcase.toothpick.MemberInjectorRegistry()) | ||
|
||
val appScope = Toothpick.openScope(ApplicationModule.SCOPE_APPLICATION) | ||
appScope.installModules(ApplicationModule(this)) | ||
} | ||
} |
Oops, something went wrong.