Skip to content
This repository has been archived by the owner on May 16, 2024. It is now read-only.

Feature/new nstack translation #14

Merged
merged 2 commits into from
May 30, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 38 additions & 14 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,20 +13,20 @@ translation {
}

android {
compileSdkVersion 26
buildToolsVersion '26.0.2'
compileSdkVersion 27
buildToolsVersion '27.0.3'
flavorDimensions "default"

defaultConfig {
applicationId "dk.nodes.template"
minSdkVersion 19
targetSdkVersion 26
versionCode 1
versionName "0.0.1"
targetSdkVersion 27
versionCode 2
versionName "0.0.2"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

manifestPlaceholders = [
appId: translation.appId,
appId : translation.appId,
apiKey: translation.apiKey
]
}
Expand Down Expand Up @@ -94,15 +94,31 @@ repositories {
}

dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
def kotlinx_coroutines_version = '0.19.1',
support_library_version = '27.1.1',
constraint_layout_version = '1.1.0',
dagger_version = "2.11",
lifecycle_version = "1.1.1",
hockey_sdk_version = "5.1.0",
timber_version = "4.6.0",
junit_version = '4.12',
espresso_core_version = '3.0.1',
mockito_version = '2.7.22',
nodes_nstack_kotlin_version = '2.1.0',
nodes_arch_version = '1.1.8',

rx_android_version = '2.0.2',

retrofit_version = "2.3.0",
okhttp_version = "3.9.0",
store_version = "3.0.0-beta"

fileTree(dir: "libs", include: ["*.jar"])
androidTestImplementation("com.android.support.test.espresso:espresso-core:$espresso_core_version", {
exclude group: "com.android.support", module: "support-annotations"
})

// uncomment me if using multidex
// implementation "com.android.support:multidex:$multidex_version"

implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinx_coroutines_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlinx_coroutines_version"
Expand All @@ -119,8 +135,8 @@ dependencies {
implementation "net.hockeyapp.android:HockeySDK:$hockey_sdk_version"
implementation "com.jakewharton.timber:timber:$timber_version"

implementation ("com.squareup.retrofit2:retrofit:$retrofit_version")
implementation ("com.squareup.retrofit2:converter-gson:$retrofit_version") {
implementation("com.squareup.retrofit2:retrofit:$retrofit_version")
implementation("com.squareup.retrofit2:converter-gson:$retrofit_version") {
exclude module: "retrofit:$retrofit_version"
}
implementation "com.squareup.okhttp3:okhttp:$okhttp_version"
Expand All @@ -130,7 +146,7 @@ dependencies {

implementation "com.squareup.retrofit2:adapter-rxjava2:$retrofit_version"

implementation "io.reactivex.rxjava2:rxandroid:$rxandroid_version"
implementation "io.reactivex.rxjava2:rxandroid:$rx_android_version"
implementation "com.nytimes.android:store-kotlin3:$store_version"
implementation "com.nytimes.android:middleware3:$store_version"
implementation "com.nytimes.android:filesystem3:$store_version"
Expand All @@ -146,4 +162,12 @@ dependencies {
androidTestImplementation "com.android.support.test.espresso:espresso-core:$espresso_core_version"
androidTestImplementation("com.android.support.test.espresso:espresso-intents:$espresso_core_version")
androidTestImplementation "com.android.support.test.espresso:espresso-contrib:$espresso_core_version"


// The following section is only used to force the latest version to resolve conflicts
implementation "android.arch.core:common:$lifecycle_version"
implementation "android.arch.core:runtime:$lifecycle_version"
implementation "android.arch.lifecycle:livedata-core:$lifecycle_version"
implementation "android.arch.lifecycle:runtime:$lifecycle_version"
implementation "android.arch.lifecycle:common:$lifecycle_version"
}
1 change: 1 addition & 0 deletions app/src/main/assets/all_translations.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"en-GB":{"default":{"ok":"Ok","cancel":"__cancel","no":"__no","yes":"__yes","retry":"__retry","edit":"__edit","save":"__save","back":"__back","settings":"__settings","later":"__later","next":"__next","previous":"__previous","skip":"__skip"},"versionControl":{"updateHeader":"New version is out, please update","forceHeader":"New version is out, you have to update!","negativeBtn":"Cancel","positiveBtn":"Update","newInVersionHeader":"New in this version","okBtn":"Ok"},"rateReminder":{"title":"Rate the app","body":"We can see you like the application. Would you like to rate it?","yesBtn":"Yes","laterBtn":"Later","noBtn":"No"},"error":{"authenticationError":"__authenticationError","connectionError":"__connectionError","errorTitle":"__errorTitle","unknownError":"__unknownError"}},"es-ES":{"default":{"ok":"Ok","cancel":"__cancel","no":"__no","yes":"__yes","retry":"__retry","edit":"__edit","save":"__save","back":"__back","settings":"__settings","later":"__later","next":"__next","previous":"__previous","skip":"__skip"},"versionControl":{"updateHeader":"Nueva version disponible, por favor actualiza","forceHeader":"Nueva version disponible, tienes que actualizar!","negativeBtn":"Cancelar","positiveBtn":"Actualizar","newInVersionHeader":"Nuevo en esta version","okBtn":"Ok"},"rateReminder":{"title":"Valora la app","body":"Vemos que te gusta la aplicaci\u00f3n.\r\nQuieres valorarla?","yesBtn":"Si","laterBtn":"Despu\u00e9s","noBtn":"No"},"error":{"authenticationError":"__authenticationError","connectionError":"__connectionError","errorTitle":"__errorTitle","unknownError":"__unknownError"}},"da-DK":{"default":{"ok":"Ok","cancel":"Annuller","no":"Nej","yes":"Ja","retry":"Pr\u00f8v igen","edit":"Rediger","save":"Gem","back":"Tilbage","settings":"Indstillinger","later":"Senere","next":"N\u00e6ste","previous":"Forrige","skip":"Spring over"},"versionControl":{"updateHeader":"Ny version er ude","forceHeader":"Ny version er ude, du skal opdatere!","negativeBtn":"Annuller","positiveBtn":"Opdater","newInVersionHeader":"Nyt i denne version","okBtn":"Ok"},"rateReminder":{"title":"__title","body":"__body","yesBtn":"__yesBtn","laterBtn":"__laterBtn","noBtn":"__noBtn"},"error":{"authenticationError":"Login er udl\u00f8bet, login venligst ind igen.","connectionError":"Ingen eller d\u00e5rlig forbindelse, pr\u00f8v igen.","errorTitle":"Fejl","unknownError":"Ukendt fejl, pr\u00f8v igen."}}}
8 changes: 5 additions & 3 deletions app/src/main/java/dk/nodes/template/App.kt
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package dk.nodes.template

import android.app.Application
import android.util.Log
import dk.nodes.nstack.kotlin.NStack
import dk.nodes.template.domain.models.Translation
import dk.nodes.template.injection.components.AppComponent
Expand Down Expand Up @@ -31,9 +30,12 @@ class App : Application()

appComponent.inject(this)

NStack.setLogFunction { tag, msg -> Log.e(tag, msg) }
NStack.setTranslationClass(Translation::class.java)
setupNstack()
}

private fun setupNstack() {
NStack.translationClass = Translation::class.java
NStack.init(this)
}

// uncomment me if multidex
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
/**
* Created by nstack.io gradle translation plugin
* Built from Accept Header: da-DK
* Generated: Thu May 25 01:49:14 CEST 2017
*/

public class Translation {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import com.google.gson.GsonBuilder
import dagger.Module
import dagger.Provides
import dk.nodes.arch.domain.injection.scopes.AppScope
import dk.nodes.nstack.providers.NMetaInterceptor
import dk.nodes.nstack.kotlin.providers.NMetaInterceptor
import dk.nodes.template.BuildConfig
import dk.nodes.template.network.rest.Api
import dk.nodes.template.network.rest.util.BufferedSourceConverterFactory
Expand Down Expand Up @@ -66,7 +66,7 @@ class RestModule {
.connectTimeout(45, TimeUnit.SECONDS)
.readTimeout(60, TimeUnit.SECONDS)
.writeTimeout(60, TimeUnit.SECONDS)
.addInterceptor(NMetaInterceptor(BuildConfig.FLAVOR))
.addInterceptor(NMetaInterceptor(BuildConfig.BUILD_TYPE))

if (BuildConfig.DEBUG) {
val logging = okhttp3.logging.HttpLoggingInterceptor()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import okio.BufferedSource
* Created by bison on 24-06-2017.
*/
class StorePostRepository(val api: Api, val gson: Gson, val context: Context) : PostRepository {

val postStore: Store<List<Post>, Int> by lazy {
StoreBuilder.parsedWithKey<Int, BufferedSource, List<Post>>()
.fetcher { key -> api.getPostsBuffered() }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,24 @@
package dk.nodes.template.presentation.base

import android.content.Context
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import dk.nodes.arch.presentation.base.BaseView
import dk.nodes.nstack.kotlin.inflater.NStackBaseContext

abstract class BaseActivity : AppCompatActivity(), BaseView {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

//Make sure all of our dependencies get injected
injectDependencies()
}

override fun attachBaseContext(newBase: Context) {
super.attachBaseContext(NStackBaseContext(newBase))
}

override fun onStart() {
super.onStart()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,22 @@ import android.os.Bundle
import android.support.v7.app.AlertDialog
import android.util.Log
import dk.nodes.nstack.kotlin.NStack
import dk.nodes.nstack.kotlin.UpdateType
import dk.nodes.nstack.kotlin.models.AppUpdateState
import dk.nodes.template.App
import dk.nodes.template.R
import dk.nodes.template.domain.models.Post
import dk.nodes.template.domain.models.Translation
import dk.nodes.template.injection.components.DaggerPresentationComponent
import dk.nodes.template.presentation.base.BaseActivity
import dk.nodes.template.injection.components.PresentationComponent
import dk.nodes.template.injection.modules.PresentationModule
import dk.nodes.template.presentation.base.BaseActivity
import kotlinx.android.synthetic.main.activity_main.*
import timber.log.Timber
import javax.inject.Inject

class MainActivity : BaseActivity(), MainContract.View {
val component: PresentationComponent by lazy {

private val component: PresentationComponent by lazy {
DaggerPresentationComponent.builder()
.appComponent((application as App).appComponent)
.presentationModule(PresentationModule())
Expand All @@ -40,21 +41,28 @@ class MainActivity : BaseActivity(), MainContract.View {

//textview = findViewById(R.id.textview) as TextView
textview.text = Translation.defaultSection.settings
NStack.translate(this@MainActivity)

NStack.appOpen({ success -> Log.e("debug", "appopen success = $success") })
setupNstack()
}

NStack.versionControl(this@MainActivity, { type, builder ->
when (type) {
UpdateType.UPDATE -> builder?.show()
UpdateType.FORCE_UPDATE -> {
//builder?.setOnDismissListener { finish() }
//builder?.show()
private fun setupNstack() {
NStack.onAppUpdateListener = { appUpdate ->
when (appUpdate.state) {
AppUpdateState.NONE -> {
// Do nothing because there is no update
}
AppUpdateState.UPDATE -> {
// Show a user a dialog that is dismissible
}
AppUpdateState.FORCE -> {
// Show the user an undismissable dialog
}
else -> {
AppUpdateState.CHANGELOG -> {
// Show change log (Not yet implemented because its never used)
}
}
})
}
NStack.appOpen({ success -> Log.e("debug", "appopen success = $success") })
}


Expand Down Expand Up @@ -82,13 +90,6 @@ class MainActivity : BaseActivity(), MainContract.View {
})
}


override fun onResume() {
super.onResume()
NStack.translate(this@MainActivity)
}


override fun showPosts(posts: List<Post>) {
for (post in posts) {
Timber.e(post.toString())
Expand Down
25 changes: 15 additions & 10 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:nstack="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
android:orientation="vertical"
tools:ignore="MissingPrefix">

<LinearLayout
android:layout_width="match_parent"
Expand All @@ -19,14 +23,15 @@
android:layout_marginRight="20dp"
android:layout_weight="1"
android:text="..."
android:textSize="14sp" />
android:textSize="14sp"/>

<Button
android:id="@+id/saveButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="SAVE"
android:textSize="12sp" />
tools:text="SAVE"
android:textSize="12sp"
nstack:text="default_save"/>
</LinearLayout>

<TextView
Expand All @@ -37,14 +42,14 @@
android:gravity="center"
android:text="..."
android:textColor="#ff3737"
android:textSize="14sp" />
android:textSize="14sp"/>


<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="#e2e2e2" />
android:background="#e2e2e2"/>


<LinearLayout
Expand All @@ -60,15 +65,15 @@
android:layout_height="wrap_content"
android:layout_weight="0"
android:text="Open AlertDialog"
android:textSize="12sp" />
android:textSize="12sp"/>

<Button
android:id="@+id/buttonOpenActivity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:text="Open new Activity"
android:textSize="12sp" />
android:textSize="12sp"/>

</LinearLayout>

Expand All @@ -77,6 +82,6 @@
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="#e2e2e2" />
android:background="#e2e2e2"/>

</LinearLayout>
30 changes: 30 additions & 0 deletions app/src/main/res/values/nstack_keys.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<resources>
<string name='nstack_default_ok' formatted='false'>default_ok</string>
<string name='nstack_default_cancel' formatted='false'>default_cancel</string>
<string name='nstack_default_no' formatted='false'>default_no</string>
<string name='nstack_default_yes' formatted='false'>default_yes</string>
<string name='nstack_default_retry' formatted='false'>default_retry</string>
<string name='nstack_default_edit' formatted='false'>default_edit</string>
<string name='nstack_default_save' formatted='false'>default_save</string>
<string name='nstack_default_back' formatted='false'>default_back</string>
<string name='nstack_default_settings' formatted='false'>default_settings</string>
<string name='nstack_default_later' formatted='false'>default_later</string>
<string name='nstack_default_next' formatted='false'>default_next</string>
<string name='nstack_default_previous' formatted='false'>default_previous</string>
<string name='nstack_default_skip' formatted='false'>default_skip</string>
<string name='nstack_versionControl_updateHeader' formatted='false'>versionControl_updateHeader</string>
<string name='nstack_versionControl_forceHeader' formatted='false'>versionControl_forceHeader</string>
<string name='nstack_versionControl_negativeBtn' formatted='false'>versionControl_negativeBtn</string>
<string name='nstack_versionControl_positiveBtn' formatted='false'>versionControl_positiveBtn</string>
<string name='nstack_versionControl_newInVersionHeader' formatted='false'>versionControl_newInVersionHeader</string>
<string name='nstack_versionControl_okBtn' formatted='false'>versionControl_okBtn</string>
<string name='nstack_rateReminder_title' formatted='false'>rateReminder_title</string>
<string name='nstack_rateReminder_body' formatted='false'>rateReminder_body</string>
<string name='nstack_rateReminder_yesBtn' formatted='false'>rateReminder_yesBtn</string>
<string name='nstack_rateReminder_laterBtn' formatted='false'>rateReminder_laterBtn</string>
<string name='nstack_rateReminder_noBtn' formatted='false'>rateReminder_noBtn</string>
<string name='nstack_error_authenticationError' formatted='false'>error_authenticationError</string>
<string name='nstack_error_connectionError' formatted='false'>error_connectionError</string>
<string name='nstack_error_errorTitle' formatted='false'>error_errorTitle</string>
<string name='nstack_error_unknownError' formatted='false'>error_unknownError</string>
</resources>
Loading