diff --git a/app/build.gradle b/app/build.gradle index 18729ac..a1c1106 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,6 +1,7 @@ apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' + android { compileSdkVersion 28 defaultConfig { @@ -30,5 +31,7 @@ dependencies { androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation 'com.google.firebase:firebase-core:16.0.6' implementation 'com.google.firebase:firebase-database:16.0.5' + implementation 'com.google.dagger:dagger:2.13' + annotationProcessor 'com.google.dagger:dagger-compiler:2.13' } apply plugin: 'com.google.gms.google-services' \ No newline at end of file diff --git a/app/src/main/java/com/ofmine/project/testapp/DI/BattleForGalaxy.java b/app/src/main/java/com/ofmine/project/testapp/DI/BattleForGalaxy.java new file mode 100644 index 0000000..e9be794 --- /dev/null +++ b/app/src/main/java/com/ofmine/project/testapp/DI/BattleForGalaxy.java @@ -0,0 +1,20 @@ +package com.ofmine.project.testapp.DI; + +import dagger.Component; + +public class BattleForGalaxy { + + public void mainMethod() { + BattleComponent component = DaggerBattleComponent.create(); + War war = component.getWar(); + war.prepare(); + war.report(); + } + + +} + +@Component +interface BattleComponent { + War getWar(); +} diff --git a/app/src/main/java/com/ofmine/project/testapp/DI/Empire.java b/app/src/main/java/com/ofmine/project/testapp/DI/Empire.java new file mode 100644 index 0000000..2519476 --- /dev/null +++ b/app/src/main/java/com/ofmine/project/testapp/DI/Empire.java @@ -0,0 +1,22 @@ +package com.ofmine.project.testapp.DI; + +import javax.inject.Inject; + +public class Empire implements Fraction { + @Inject //Dagger 2 + public Empire(){ + } + + @Override + public void prepareForWar() { + // что-то происходит + System.out.println(this.getClass().getSimpleName()+" prepared for war"); + } + + @Override + public void reportForWar() { + // что-то происходит + System.out.println(this.getClass().getSimpleName()+" reporting.."); + } + +} diff --git a/app/src/main/java/com/ofmine/project/testapp/DI/Fraction.java b/app/src/main/java/com/ofmine/project/testapp/DI/Fraction.java new file mode 100644 index 0000000..21f51e0 --- /dev/null +++ b/app/src/main/java/com/ofmine/project/testapp/DI/Fraction.java @@ -0,0 +1,10 @@ +package com.ofmine.project.testapp.DI; + +public interface Fraction { + + + void prepareForWar(); + void reportForWar(); + + +} diff --git a/app/src/main/java/com/ofmine/project/testapp/DI/Republic.java b/app/src/main/java/com/ofmine/project/testapp/DI/Republic.java new file mode 100644 index 0000000..e021e93 --- /dev/null +++ b/app/src/main/java/com/ofmine/project/testapp/DI/Republic.java @@ -0,0 +1,26 @@ +package com.ofmine.project.testapp.DI; + +import android.widget.FrameLayout; + +import javax.inject.Inject; + +public class Republic implements Fraction { + + + @Inject //Dagger 2 + public Republic(){ + } + + @Override + public void prepareForWar() { + // что-то происходит + System.out.println(this.getClass().getSimpleName()+" prepared for war"); + } + + @Override + public void reportForWar() { + // что-то происходит + System.out.println(this.getClass().getSimpleName()+" reporting.."); + } + +} diff --git a/app/src/main/java/com/ofmine/project/testapp/DI/War.java b/app/src/main/java/com/ofmine/project/testapp/DI/War.java new file mode 100644 index 0000000..67ae550 --- /dev/null +++ b/app/src/main/java/com/ofmine/project/testapp/DI/War.java @@ -0,0 +1,26 @@ +package com.ofmine.project.testapp.DI; + +import javax.inject.Inject; + +public class War { + + private Republic republic; + private Empire empire; + + @Inject + public War(Republic republic, Empire empire) { + this.republic = republic; + this.empire = empire; + } + + public void prepare() { + republic.prepareForWar(); + empire.prepareForWar(); + } + + public void report() { + republic.reportForWar(); + empire.reportForWar(); + } + +} diff --git a/app/src/main/java/com/ofmine/project/testapp/MainActivity.java b/app/src/main/java/com/ofmine/project/testapp/MainActivity.java index 3849045..7824654 100644 --- a/app/src/main/java/com/ofmine/project/testapp/MainActivity.java +++ b/app/src/main/java/com/ofmine/project/testapp/MainActivity.java @@ -13,6 +13,7 @@ import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; import com.google.firebase.database.ValueEventListener; +import com.ofmine.project.testapp.DI.War; import com.vk.sdk.VKAccessToken; import com.vk.sdk.VKCallback; import com.vk.sdk.VKScope; @@ -65,7 +66,7 @@ public void onComplete(VKResponse response) { GsonBuilder builder = new GsonBuilder(); Gson gson = builder.create(); String answer=response.responseString; - userData=gson.fromJson(answer, UserData.class); + userData=gson.fromJson(answer, UserData.class); textView.setText( userData.response.get(0).getFirst_name()); } @@ -100,28 +101,27 @@ public void onCancelled(DatabaseError error) { } }); - } - @Override - protected void onActivityResult ( int requestCode, int resultCode, Intent data){ - if (!VKSdk.onActivityResult(requestCode, resultCode, data, new VKCallback() { - @Override - public void onResult(VKAccessToken res) { + @Override + protected void onActivityResult ( int requestCode, int resultCode, Intent data){ + if (!VKSdk.onActivityResult(requestCode, resultCode, data, new VKCallback() { + @Override + public void onResult(VKAccessToken res) { - textView.setText("success"); + textView.setText("success"); // Пользователь успешно авторизовался - } + } - @Override - public void onError(VKError error) { - textView.setText("failure"); + @Override + public void onError(VKError error) { + textView.setText("failure"); // Произошла ошибка авторизации (например, пользователь запретил авторизацию) - } - })) { - super.onActivityResult(requestCode, resultCode, data); } + })) { + super.onActivityResult(requestCode, resultCode, data); } + }