Skip to content

Commit b6bac17

Browse files
committed
Паттерн
[+] Продолжаю переписывать на MVP.
1 parent 13a507b commit b6bac17

File tree

9 files changed

+173
-109
lines changed

9 files changed

+173
-109
lines changed

app/src/main/java/ru/plumsoftware/notebook/manager/ads/AdsIds.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22

33
public class AdsIds {
44
public static final String OPEN_AD_UNIT_ID = "R-M-1957919-3";
5+
public static final String INTERSTITIAL_AD_UNIT_ID = "R-M-1957919-2";
56
}

app/src/main/java/ru/plumsoftware/notebook/presentation/activities/main/presenter/MainPresenterImpl.java

Lines changed: 43 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ public class MainPresenterImpl implements MainPresenter {
4848
private SQLiteDatabase sqLiteDatabaseNotes;
4949

5050
private AppOpenAd mainAppOpenAd = null;
51-
private final ProgressDialog progressDialog;
5251

5352
private boolean isList = true;
5453
private List<Note> notes;
@@ -59,8 +58,6 @@ public MainPresenterImpl(Context context, @NonNull Activity activity, MainView m
5958
this.activity = activity;
6059
this.mainView = mainView;
6160
filteredNotes = new ArrayList<>();
62-
63-
progressDialog = new ProgressDialog(context, R.style.CustomProgressDialog);
6461
}
6562

6663
@Override
@@ -113,7 +110,7 @@ public void initNotes(Conditions conditions) {
113110

114111
mainView.initRecyclerView(filteredNotes, layoutManager);
115112
} else if (conditions instanceof Conditions.All) {
116-
progressDialog.showDialog();
113+
mainView.showProgressDialog();
117114
if (notes == null) {
118115
SQLiteDatabaseManager sqLiteDatabaseManager = new SQLiteDatabaseManager(context);
119116
sqLiteDatabaseNotes = sqLiteDatabaseManager.getWritableDatabase();
@@ -124,61 +121,58 @@ public void initNotes(Conditions conditions) {
124121
mainView.changeFilterButtonImage(R.drawable.ic_baseline_filter_list);
125122
mainView.initRecyclerView(notes, new LinearLayoutManager(context));
126123
}
127-
progressDialog.dismiss();
124+
mainView.dismissProgressDialog();
128125
}
129126

130127
@Override
131128
public void initOpenAds() {
132-
if (activity.getIntent().getBooleanExtra(ExtraNames.MainActivity.isLoadAppOpenAd, true)) {
133-
progressDialog.showDialog();
134-
final AppOpenAdLoader appOpenAdLoader = new AppOpenAdLoader(context);
135-
final AdRequestConfiguration adRequestConfiguration = new AdRequestConfiguration.Builder(AdsIds.OPEN_AD_UNIT_ID).build();
136-
137-
AppOpenAdEventListener appOpenAdEventListener = new AppOpenAdEventListener() {
138-
@Override
139-
public void onAdShown() {
140-
progressDialog.dismiss();
141-
}
129+
mainView.showProgressDialog();
130+
final AppOpenAdLoader appOpenAdLoader = new AppOpenAdLoader(context);
131+
final AdRequestConfiguration adRequestConfiguration = new AdRequestConfiguration.Builder(AdsIds.OPEN_AD_UNIT_ID).build();
132+
133+
AppOpenAdEventListener appOpenAdEventListener = new AppOpenAdEventListener() {
134+
@Override
135+
public void onAdShown() {
136+
mainView.dismissProgressDialog();
137+
}
142138

143-
@Override
144-
public void onAdFailedToShow(@NonNull final AdError adError) {
145-
progressDialog.dismiss();
146-
}
139+
@Override
140+
public void onAdFailedToShow(@NonNull final AdError adError) {
141+
mainView.dismissProgressDialog();
142+
}
147143

148-
@Override
149-
public void onAdDismissed() {
150-
clearAppOpenAd();
151-
}
144+
@Override
145+
public void onAdDismissed() {
146+
clearAppOpenAd();
147+
}
152148

153-
@Override
154-
public void onAdClicked() {
155-
// Called when a click is recorded for an ad.
156-
}
149+
@Override
150+
public void onAdClicked() {
151+
// Called when a click is recorded for an ad.
152+
}
157153

158-
@Override
159-
public void onAdImpression(@Nullable final ImpressionData impressionData) {
160-
// Called when an impression is recorded for an ad.
161-
}
162-
};
163-
AppOpenAdLoadListener appOpenAdLoadListener = new AppOpenAdLoadListener() {
164-
@Override
165-
public void onAdLoaded(@NonNull final AppOpenAd appOpenAd) {
166-
mainAppOpenAd = appOpenAd;
167-
appOpenAd.setAdEventListener(appOpenAdEventListener);
168-
mainAppOpenAd.show(activity);
169-
progressDialog.dismiss();
170-
}
154+
@Override
155+
public void onAdImpression(@Nullable final ImpressionData impressionData) {
156+
// Called when an impression is recorded for an ad.
157+
}
158+
};
159+
AppOpenAdLoadListener appOpenAdLoadListener = new AppOpenAdLoadListener() {
160+
@Override
161+
public void onAdLoaded(@NonNull final AppOpenAd appOpenAd) {
162+
mainAppOpenAd = appOpenAd;
163+
appOpenAd.setAdEventListener(appOpenAdEventListener);
164+
mainAppOpenAd.show(activity);
165+
mainView.dismissProgressDialog();
166+
}
171167

172-
@Override
173-
public void onAdFailedToLoad(@NonNull final AdRequestError adRequestError) {
174-
progressDialog.dismiss();
175-
}
176-
};
168+
@Override
169+
public void onAdFailedToLoad(@NonNull final AdRequestError adRequestError) {
170+
mainView.dismissProgressDialog();
171+
}
172+
};
177173

178-
appOpenAdLoader.setAdLoadListener(appOpenAdLoadListener);
179-
appOpenAdLoader.loadAd(adRequestConfiguration);
180-
progressDialog.dismiss();
181-
}
174+
appOpenAdLoader.setAdLoadListener(appOpenAdLoadListener);
175+
appOpenAdLoader.loadAd(adRequestConfiguration);
182176
}
183177

184178
@NonNull

app/src/main/java/ru/plumsoftware/notebook/presentation/activities/main/view/MainActivity.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import ru.plumsoftware.notebook.presentation.activities.main.presenter.MainPresenterImpl;
2020
import ru.plumsoftware.notebook.presentation.adapters.NoteAdapter;
2121
import ru.plumsoftware.notebook.presentation.activities.main.presenter.MainPresenter;
22+
import ru.plumsoftware.notebook.presentation.dialogs.ProgressDialog;
2223

2324
public class MainActivity extends AppCompatActivity implements MainView {
2425

@@ -30,6 +31,8 @@ public class MainActivity extends AppCompatActivity implements MainView {
3031
private ImageView filterAsList;
3132
private RecyclerView recyclerViewNotes;
3233

34+
private ProgressDialog progressDialog;
35+
3336
@Override
3437
protected void onCreate(Bundle savedInstanceState) {
3538
super.onCreate(savedInstanceState);
@@ -46,6 +49,7 @@ protected void onCreate(Bundle savedInstanceState) {
4649
filterAsList = findViewById(R.id.filterAsList);
4750
recyclerViewNotes = activity.findViewById(R.id.recyclerViewNotes);
4851
ImageButton addNote = findViewById(R.id.addNote);
52+
progressDialog = new ProgressDialog(context, R.style.CustomProgressDialog);
4953

5054
presenter.initMobileSdk();
5155
presenter.initNotes(new Conditions.All());
@@ -93,4 +97,14 @@ public void initRecyclerView(List<Note> notes, RecyclerView.LayoutManager layout
9397
recyclerViewNotes.setAdapter(noteAdapter);
9498
recyclerViewNotes.setVisibility(View.VISIBLE);
9599
}
100+
101+
@Override
102+
public void showProgressDialog() {
103+
progressDialog.showDialog();
104+
}
105+
106+
@Override
107+
public void dismissProgressDialog() {
108+
progressDialog.dismiss();
109+
}
96110
}

app/src/main/java/ru/plumsoftware/notebook/presentation/activities/main/view/MainView.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,7 @@
1010
public interface MainView {
1111
void changeFilterButtonImage(@DrawableRes int res);
1212
void initRecyclerView(List<Note> notes, RecyclerView.LayoutManager layoutManager);
13+
14+
void showProgressDialog();
15+
void dismissProgressDialog();
1316
}

app/src/main/java/ru/plumsoftware/notebook/presentation/activities/note/model/AddNoteModel.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@
33
import android.app.Activity;
44
import android.content.Context;
55

6+
import androidx.annotation.Nullable;
7+
8+
import com.yandex.mobile.ads.interstitial.InterstitialAd;
9+
import com.yandex.mobile.ads.interstitial.InterstitialAdLoader;
10+
611
import ru.plumsoftware.data.model.ui.Note;
712

813
public class AddNoteModel {
@@ -11,13 +16,32 @@ public class AddNoteModel {
1116
private final Context context;
1217
private Note note;
1318

19+
private InterstitialAd mInterstitialAd;
20+
private InterstitialAdLoader mInterstitialAdLoader;
21+
1422
public AddNoteModel(Activity activity, Context context) {
1523
this.activity = activity;
1624
this.context = context;
1725

1826
mode = Mode.New;
1927
}
2028

29+
public InterstitialAd getmInterstitialAd() {
30+
return mInterstitialAd;
31+
}
32+
33+
public InterstitialAdLoader getmInterstitialAdLoader() {
34+
return mInterstitialAdLoader;
35+
}
36+
37+
public void setmInterstitialAd(InterstitialAd mInterstitialAd) {
38+
this.mInterstitialAd = mInterstitialAd;
39+
}
40+
41+
public void setmInterstitialAdLoader(InterstitialAdLoader mInterstitialAdLoader) {
42+
this.mInterstitialAdLoader = mInterstitialAdLoader;
43+
}
44+
2145
public void setMode(Mode mode) {
2246
this.mode = mode;
2347
}

app/src/main/java/ru/plumsoftware/notebook/presentation/activities/note/presenter/AddNotePresenter.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,6 @@ public interface AddNotePresenter {
44
void initNote();
55
void initMobileSdk();
66
void putNote(String name, String text, int or, int c, long time, boolean isNotify);
7+
void initInterstitialAds();
8+
void showInterstitialAd();
79
}

app/src/main/java/ru/plumsoftware/notebook/presentation/activities/note/presenter/AddNotePresenterImpl.java

Lines changed: 71 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,20 @@
44
import android.content.ContentValues;
55
import android.content.Context;
66
import android.database.sqlite.SQLiteDatabase;
7+
import android.widget.Toast;
78

9+
import androidx.annotation.NonNull;
10+
import androidx.annotation.Nullable;
11+
12+
import com.yandex.mobile.ads.common.AdError;
13+
import com.yandex.mobile.ads.common.AdRequestConfiguration;
14+
import com.yandex.mobile.ads.common.AdRequestError;
15+
import com.yandex.mobile.ads.common.ImpressionData;
816
import com.yandex.mobile.ads.common.MobileAds;
17+
import com.yandex.mobile.ads.interstitial.InterstitialAd;
18+
import com.yandex.mobile.ads.interstitial.InterstitialAdEventListener;
19+
import com.yandex.mobile.ads.interstitial.InterstitialAdLoadListener;
20+
import com.yandex.mobile.ads.interstitial.InterstitialAdLoader;
921

1022
import java.text.SimpleDateFormat;
1123
import java.util.Date;
@@ -14,7 +26,7 @@
1426
import ru.plumsoftware.data.database.SQLiteDatabaseManager;
1527
import ru.plumsoftware.data.model.database.DatabaseConstants;
1628
import ru.plumsoftware.data.model.ui.Note;
17-
import ru.plumsoftware.notebook.R;
29+
import ru.plumsoftware.notebook.manager.ads.AdsIds;
1830
import ru.plumsoftware.notebook.manager.extra.ExtraNames;
1931
import ru.plumsoftware.notebook.manager.unique.UniqueIdGenerator;
2032
import ru.plumsoftware.notebook.presentation.activities.note.model.AddNoteModel;
@@ -80,6 +92,64 @@ public void putNote(String name, String text, int or, int c, long time, boolean
8092
}
8193
}
8294

95+
@Override
96+
public void initInterstitialAds() {
97+
InterstitialAdLoader mInterstitialAdLoader = new InterstitialAdLoader(addNoteModel.getContext());
98+
mInterstitialAdLoader.setAdLoadListener(new InterstitialAdLoadListener() {
99+
@Override
100+
public void onAdLoaded(@NonNull final InterstitialAd interstitialAd) {
101+
view.dismissProgressDialog();
102+
interstitialAd.setAdEventListener(new InterstitialAdEventListener() {
103+
@Override
104+
public void onAdShown() {
105+
106+
}
107+
108+
@Override
109+
public void onAdFailedToShow(@NonNull AdError adError) {
110+
111+
}
112+
113+
@Override
114+
public void onAdDismissed() {
115+
addNoteModel.getActivity().finish();
116+
addNoteModel.getActivity().overridePendingTransition(0, 0);
117+
}
118+
119+
@Override
120+
public void onAdClicked() {
121+
addNoteModel.getActivity().finish();
122+
addNoteModel.getActivity().overridePendingTransition(0, 0);
123+
}
124+
125+
@Override
126+
public void onAdImpression(@Nullable ImpressionData impressionData) {
127+
128+
}
129+
});
130+
addNoteModel.setmInterstitialAd(interstitialAd);
131+
interstitialAd.show(addNoteModel.getActivity());
132+
}
133+
134+
@Override
135+
public void onAdFailedToLoad(@NonNull final AdRequestError adRequestError) {
136+
Toast.makeText(addNoteModel.getContext(), adRequestError.getDescription(), Toast.LENGTH_SHORT).show();
137+
addNoteModel.getActivity().finish();
138+
addNoteModel.getActivity().overridePendingTransition(0, 0);
139+
}
140+
});
141+
142+
addNoteModel.setmInterstitialAdLoader(mInterstitialAdLoader);
143+
}
144+
145+
@Override
146+
public void showInterstitialAd() {
147+
view.showProgressDialog();
148+
final AdRequestConfiguration adRequestConfiguration =
149+
new AdRequestConfiguration.Builder(AdsIds.INTERSTITIAL_AD_UNIT_ID).build();
150+
addNoteModel.getmInterstitialAdLoader().loadAd(adRequestConfiguration);
151+
}
152+
83153
private void updateNote(String name, String text, int or, int c, long time, boolean isNotify) {
84154
ContentValues contentValues = new ContentValues();
85155
contentValues.put(DatabaseConstants._NOTE_NAME, name);

0 commit comments

Comments
 (0)