@@ -53,12 +53,15 @@ public class MainPresenterImpl implements MainPresenter {
5353 private List <Note > notes ;
5454 private final List <Note > filteredNotes ;
5555
56+ private ProgressDialog progressDialog ;
57+
5658 public MainPresenterImpl (Context context , @ NonNull Activity activity , MainView mainView ) {
5759 this .context = context ;
5860 this .activity = activity ;
5961 this .mainView = mainView ;
6062 filteredNotes = new ArrayList <>();
6163 notes = new ArrayList <>();
64+ progressDialog = new ProgressDialog (activity , R .style .CustomProgressDialog );
6265 }
6366
6467 @ Override
@@ -87,93 +90,116 @@ public void initMobileSdk() {
8790 });
8891 }
8992
93+ private void showProgressDialog () {
94+ progressDialog .showDialog ();
95+ }
96+
97+ private void dismissProgressDialog () {
98+ progressDialog .dismiss ();
99+ }
100+
90101
91102 @ Override
92103 public void initNotes (Conditions conditions ) {
93- mainView .showProgressDialog ();
94- if (conditions instanceof Conditions .Search ) {
95- filteredNotes .clear ();
96- String query = ((Conditions .Search ) conditions ).getQuery ();
97-
98- for (Note note : notes ) {
99- if (note .getNoteName ().contains (query ) ||
100- note .getNoteText ().contains (query ) ||
101- new SimpleDateFormat ("dd.MM.yyyy HH.mm" , Locale .getDefault ()).format (new Date (note .getAddNoteTime ())).contains (query )
102- ) {
103- filteredNotes .add (note );
104+ new Thread (() -> {
105+ if (conditions instanceof Conditions .Search ) {
106+ filteredNotes .clear ();
107+ String query = ((Conditions .Search ) conditions ).getQuery ();
108+
109+ for (Note note : notes ) {
110+ if (note .getNoteName ().contains (query ) ||
111+ note .getNoteText ().contains (query ) ||
112+ new SimpleDateFormat ("dd.MM.yyyy HH.mm" , Locale .getDefault ()).format (new Date (note .getAddNoteTime ())).contains (query )
113+ ) {
114+ filteredNotes .add (note );
115+ }
116+ }
117+ RecyclerView .LayoutManager layoutManager ;
118+ if (isList ) {
119+ layoutManager = new LinearLayoutManager (context );
120+ } else {
121+ layoutManager = new StaggeredGridLayoutManager (2 , StaggeredGridLayoutManager .VERTICAL );
104122 }
123+
124+ mainView .initRecyclerView (filteredNotes , layoutManager );
105125 }
106- RecyclerView .LayoutManager layoutManager ;
107- if (isList ) {
108- layoutManager = new LinearLayoutManager (context );
109- } else {
110- layoutManager = new StaggeredGridLayoutManager (2 , StaggeredGridLayoutManager .VERTICAL );
126+ else if (conditions instanceof Conditions .All ) {
127+ notes .clear ();
128+ SQLiteDatabaseManager sqLiteDatabaseManager = new SQLiteDatabaseManager (context );
129+ sqLiteDatabaseNotes = sqLiteDatabaseManager .getWritableDatabase ();
130+ notes = loadNotes ();
131+
132+ isList = true ;
133+
134+ activity .runOnUiThread (() -> {
135+ mainView .changeFilterButtonImage (R .drawable .ic_baseline_filter_list );
136+ mainView .initRecyclerView (notes , new LinearLayoutManager (context ));
137+ });
111138 }
112-
113- mainView .initRecyclerView (filteredNotes , layoutManager );
114- } else if (conditions instanceof Conditions .All ) {
115- notes .clear ();
116- SQLiteDatabaseManager sqLiteDatabaseManager = new SQLiteDatabaseManager (context );
117- sqLiteDatabaseNotes = sqLiteDatabaseManager .getWritableDatabase ();
118- notes = loadNotes ();
119-
120- isList = true ;
121- mainView .changeFilterButtonImage (R .drawable .ic_baseline_filter_list );
122- mainView .initRecyclerView (notes , new LinearLayoutManager (context ));
123- }
124- mainView .dismissProgressDialog ();
139+ }).start ();
125140 }
126141
127142 @ Override
128143 public void initOpenAds () {
129- mainView . showProgressDialog ( );
144+ activity . runOnUiThread ( this :: showProgressDialog );
130145 final AppOpenAdLoader appOpenAdLoader = new AppOpenAdLoader (context );
131146 final AdRequestConfiguration adRequestConfiguration = new AdRequestConfiguration .Builder (AdsIds .OPEN_AD_UNIT_ID ).build ();
132147
133148 AppOpenAdEventListener appOpenAdEventListener = new AppOpenAdEventListener () {
134149 @ Override
135150 public void onAdShown () {
136- mainView . dismissProgressDialog ();
151+ activity . runOnUiThread (() -> dismissProgressDialog () );
137152 }
138153
139154 @ Override
140155 public void onAdFailedToShow (@ NonNull final AdError adError ) {
141- mainView . dismissProgressDialog ();
156+ activity . runOnUiThread (() -> dismissProgressDialog () );
142157 }
143158
144159 @ Override
145160 public void onAdDismissed () {
146161 clearAppOpenAd ();
162+ activity .runOnUiThread (() -> dismissProgressDialog ());
147163 }
148164
149165 @ Override
150166 public void onAdClicked () {
151- // Called when a click is recorded for an ad.
167+ activity . runOnUiThread (() -> dismissProgressDialog ());
152168 }
153169
154170 @ Override
155171 public void onAdImpression (@ Nullable final ImpressionData impressionData ) {
156- // Called when an impression is recorded for an ad.
172+ activity . runOnUiThread (() -> dismissProgressDialog ());
157173 }
158174 };
159175 AppOpenAdLoadListener appOpenAdLoadListener = new AppOpenAdLoadListener () {
160176 @ Override
161177 public void onAdLoaded (@ NonNull final AppOpenAd appOpenAd ) {
178+ dismissProgressDialog ();
162179 mainAppOpenAd = appOpenAd ;
163- appOpenAd .setAdEventListener (appOpenAdEventListener );
164- mainView .dismissProgressDialog ();
165- mainAppOpenAd .show (activity );
180+ activity .runOnUiThread (() -> {
181+ mainAppOpenAd .setAdEventListener (appOpenAdEventListener );
182+ mainAppOpenAd .show (activity );
183+ });
166184 }
167185
168186 @ Override
169187 public void onAdFailedToLoad (@ NonNull final AdRequestError adRequestError ) {
170- mainView . dismissProgressDialog ();
188+ activity . runOnUiThread (() -> dismissProgressDialog () );
171189 }
172190 };
173191
174192 appOpenAdLoader .setAdLoadListener (appOpenAdLoadListener );
175193 appOpenAdLoader .loadAd (adRequestConfiguration );
176- mainView .dismissProgressDialog ();
194+
195+ new Thread (() -> {
196+ try {
197+ Thread .sleep (2000 );
198+ } catch (InterruptedException e ) {
199+ throw new RuntimeException (e );
200+ }
201+ activity .runOnUiThread (this ::dismissProgressDialog );
202+ });
177203 }
178204
179205 @ NonNull
0 commit comments