diff --git a/.gitignore b/.gitignore index 487ccae..d36494a 100644 --- a/.gitignore +++ b/.gitignore @@ -34,12 +34,8 @@ captures/ # Intellij *.iml -.idea/ -.idea/workspace.xml -.idea/tasks.xml -.idea/gradle.xml -.idea/dictionaries -.idea/libraries +/.idea/ + # Keystore files *.jks @@ -53,4 +49,4 @@ google-services.json # Freeline freeline.py freeline/ -freeline_project_description.json \ No newline at end of file +freeline_project_description.json diff --git a/.idea/compiler.xml b/.idea/compiler.xml deleted file mode 100644 index 96cc43e..0000000 --- a/.idea/compiler.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml deleted file mode 100644 index e7bedf3..0000000 --- a/.idea/copyright/profiles_settings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/.idea/markdown-navigator.xml b/.idea/markdown-navigator.xml deleted file mode 100644 index 3efe9d6..0000000 --- a/.idea/markdown-navigator.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/markdown-navigator/profiles_settings.xml b/.idea/markdown-navigator/profiles_settings.xml deleted file mode 100644 index 57927c5..0000000 --- a/.idea/markdown-navigator/profiles_settings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index c3b98a8..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - Android > Lint > Correctness - - - Android > Lint > Performance - - - Android > Lint > Usability > Icons - - - - - Android - - - - - - - - - - - - - - - 1.8 - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index d67f8c7..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index 7f68460..0000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index bbe9cf0..40758a7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,4 +1,11 @@ apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-kapt' +apply plugin: 'kotlin-android-extensions' + +repositories { + mavenCentral() +} android { compileSdkVersion 25 @@ -17,6 +24,9 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } + kapt { + generateStubs = true + } dataBinding { enabled = true @@ -27,6 +37,7 @@ android { targetCompatibility JavaVersion.VERSION_1_8 } + } dependencies { @@ -60,5 +71,10 @@ dependencies { //ui compile rootProject.ext.picasso + compile rootProject.ext.kotlin + kapt rootProject.ext.databindingCompiler + kapt rootProject.ext.roomCompiler + kapt rootProject.ext.daggerCompiler + kapt rootProject.ext.daggerAndroidProcessor } diff --git a/app/src/main/java/iammert/com/androidarchitecture/AAApp.java b/app/src/main/java/iammert/com/androidarchitecture/AAApp.java deleted file mode 100644 index c65005d..0000000 --- a/app/src/main/java/iammert/com/androidarchitecture/AAApp.java +++ /dev/null @@ -1,39 +0,0 @@ -package iammert.com.androidarchitecture; - -import android.app.Activity; -import android.app.Application; - -import javax.inject.Inject; - -import dagger.android.AndroidInjector; -import dagger.android.DispatchingAndroidInjector; -import dagger.android.HasActivityInjector; -import iammert.com.androidarchitecture.di.DaggerAppComponent; - -/** - * Created by mertsimsek on 20/05/2017. - */ - -public class AAApp extends Application implements HasActivityInjector { - - @Inject - DispatchingAndroidInjector activityDispatchingInjector; - - @Override - public void onCreate() { - super.onCreate(); - initializeComponent(); - } - - private void initializeComponent() { - DaggerAppComponent.builder() - .application(this) - .build() - .inject(this); - } - - @Override - public AndroidInjector activityInjector() { - return activityDispatchingInjector; - } -} diff --git a/app/src/main/java/iammert/com/androidarchitecture/AAApp.kt b/app/src/main/java/iammert/com/androidarchitecture/AAApp.kt new file mode 100644 index 0000000..5f4758c --- /dev/null +++ b/app/src/main/java/iammert/com/androidarchitecture/AAApp.kt @@ -0,0 +1,32 @@ +package iammert.com.androidarchitecture + +import android.app.Activity +import android.app.Application +import dagger.android.AndroidInjector +import dagger.android.DispatchingAndroidInjector +import dagger.android.HasActivityInjector +import iammert.com.androidarchitecture.di.DaggerAppComponent +import javax.inject.Inject + +/** + * Created by chonamdoo on 2017. 7. 21.. + */ +class AAApp : Application(), HasActivityInjector { + + @Inject + lateinit var activityDispatchingInjector: DispatchingAndroidInjector + + override fun onCreate() { + super.onCreate() + initializeComponent() + } + override fun activityInjector(): AndroidInjector = activityDispatchingInjector + + private fun initializeComponent() { + DaggerAppComponent.builder() + .application(this) + .build() + .inject(this) + } + +} \ No newline at end of file diff --git a/app/src/main/java/iammert/com/androidarchitecture/data/remote/ApiConstants.java b/app/src/main/java/iammert/com/androidarchitecture/data/remote/ApiConstants.java index 0287357..65e2054 100644 --- a/app/src/main/java/iammert/com/androidarchitecture/data/remote/ApiConstants.java +++ b/app/src/main/java/iammert/com/androidarchitecture/data/remote/ApiConstants.java @@ -8,6 +8,6 @@ public class ApiConstants { public static final String ENDPOINT = "https://api.themoviedb.org/3/"; public static final String IMAGE_ENDPOINT_PREFIX = "https://image.tmdb.org/t/p/w500/"; - public static final String API_KEY = ""; + public static final String API_KEY = "8476a7ab80ad76f0936744df0430e67c"; public static final int TIMEOUT_IN_SEC = 15; } diff --git a/app/src/main/java/iammert/com/androidarchitecture/ui/main/MainActivity.java b/app/src/main/java/iammert/com/androidarchitecture/ui/main/MainActivity.java deleted file mode 100644 index 1fd4fbb..0000000 --- a/app/src/main/java/iammert/com/androidarchitecture/ui/main/MainActivity.java +++ /dev/null @@ -1,38 +0,0 @@ -package iammert.com.androidarchitecture.ui.main; - -import android.databinding.DataBindingUtil; -import android.support.v4.app.Fragment; -import android.support.v7.app.AppCompatActivity; -import android.os.Bundle; - -import javax.inject.Inject; - -import dagger.android.AndroidInjection; -import dagger.android.AndroidInjector; -import dagger.android.DispatchingAndroidInjector; -import dagger.android.support.HasSupportFragmentInjector; -import iammert.com.androidarchitecture.R; -import iammert.com.androidarchitecture.databinding.ActivityMainBinding; - -public class MainActivity extends AppCompatActivity implements HasSupportFragmentInjector{ - - @Inject - DispatchingAndroidInjector fragmentAndroidInjector; - - ActivityMainBinding binding; - - @Override - protected void onCreate(Bundle savedInstanceState) { - AndroidInjection.inject(this); - super.onCreate(savedInstanceState); - binding = DataBindingUtil.setContentView(this, R.layout.activity_main); - binding.viewPager.setAdapter(new MoviesPagerAdapter(getSupportFragmentManager())); - binding.tabs.setupWithViewPager(binding.viewPager); - binding.viewPager.setOffscreenPageLimit(3); - } - - @Override - public AndroidInjector supportFragmentInjector() { - return fragmentAndroidInjector; - } -} diff --git a/app/src/main/java/iammert/com/androidarchitecture/ui/main/MainActivity.kt b/app/src/main/java/iammert/com/androidarchitecture/ui/main/MainActivity.kt new file mode 100644 index 0000000..9ebd59d --- /dev/null +++ b/app/src/main/java/iammert/com/androidarchitecture/ui/main/MainActivity.kt @@ -0,0 +1,38 @@ +package iammert.com.androidarchitecture.ui.main + +import android.databinding.DataBindingUtil +import android.os.Bundle +import android.support.v4.app.Fragment +import android.support.v7.app.AppCompatActivity +import dagger.android.AndroidInjection +import dagger.android.AndroidInjector +import dagger.android.DispatchingAndroidInjector +import dagger.android.support.HasSupportFragmentInjector +import iammert.com.androidarchitecture.R +import iammert.com.androidarchitecture.databinding.ActivityMainBinding +import javax.inject.Inject + +/** + * Created by chonamdoo on 2017. 7. 21.. + */ +class MainActivity : AppCompatActivity(), HasSupportFragmentInjector { + + @Inject + lateinit var fragmentAndroidInjector: DispatchingAndroidInjector + + override fun onCreate(savedInstanceState: Bundle?) { + AndroidInjection.inject(this) + super.onCreate(savedInstanceState) + + DataBindingUtil.setContentView(this, R.layout.activity_main).run { + viewPager.adapter = MoviesPagerAdapter(supportFragmentManager) + tabs.setupWithViewPager(viewPager) + viewPager.offscreenPageLimit = 3 + } + + } + override fun supportFragmentInjector(): AndroidInjector { + return fragmentAndroidInjector + } + +} \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_language_green_24dp.xml b/app/src/main/res/drawable/ic_language_green_24dp.xml new file mode 100644 index 0000000..5835811 --- /dev/null +++ b/app/src/main/res/drawable/ic_language_green_24dp.xml @@ -0,0 +1,4 @@ + + + + diff --git a/app/src/main/res/drawable/ic_stars_green_24dp.xml b/app/src/main/res/drawable/ic_stars_green_24dp.xml new file mode 100644 index 0000000..a3f599f --- /dev/null +++ b/app/src/main/res/drawable/ic_stars_green_24dp.xml @@ -0,0 +1,4 @@ + + + + diff --git a/build.gradle b/build.gradle index d5c53bf..b9f2b78 100644 --- a/build.gradle +++ b/build.gradle @@ -1,13 +1,15 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - + ext.kotlin_version = '1.1.3-2' + ext.android_plugin_version = "3.0.0-alpha7" repositories { maven { url 'https://maven.google.com' } jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.0.0-alpha3' + classpath "com.android.tools.build:gradle:$android_plugin_version" + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -41,6 +43,7 @@ ext { archCompiler = "android.arch.lifecycle:compiler:$archVersion" roomRuntime = "android.arch.persistence.room:runtime:$archVersion" roomCompiler = "android.arch.persistence.room:compiler:$archVersion" + dagger = "com.google.dagger:dagger:$daggerVersion" daggerCompiler = "com.google.dagger:dagger-compiler:$daggerVersion" daggerAndroid = "com.google.dagger:dagger-android:$daggerVersion" @@ -50,4 +53,6 @@ ext { gsonConverter = "com.squareup.retrofit2:converter-gson:$gsonConverterVersion" okhttp = "com.squareup.okhttp3:okhttp:$okhttpVersion" picasso = "com.squareup.picasso:picasso:$picassoVersion" + kotlin = "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + databindingCompiler = "com.android.databinding:compiler:$rootProject.ext.android_plugin_version" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a9be4de..f812960 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Thu May 18 17:31:31 EEST 2017 +#Fri Jul 21 17:05:29 KST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-milestone-1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-milestone-1-all.zip