Skip to content

релиз 2.0.10 #7

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 19, 2025
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
10 changes: 5 additions & 5 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ android {
applicationId "ru.plumsoftware.notebook"
minSdk 22
targetSdk 35
versionCode 31
versionName "2.0.8"
versionCode 33
versionName "2.0.10"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

Expand Down Expand Up @@ -55,13 +55,13 @@ dependencies {
//Autogenerate
implementation 'androidx.appcompat:appcompat:1.7.0'
implementation 'com.google.android.material:material:1.12.0'
implementation 'androidx.constraintlayout:constraintlayout:2.2.0'
implementation 'androidx.constraintlayout:constraintlayout:2.2.1'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.2.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1'

//Yandex ads
implementation 'com.yandex.android:mobileads:7.9.0'
implementation 'com.yandex.android:mobileads:7.11.0'

//Glide
implementation 'com.github.bumptech.glide:glide:4.15.1'
Expand All @@ -70,7 +70,7 @@ dependencies {
implementation 'com.google.firebase:firebase-messaging:24.1.0'

//Analytics
implementation 'com.google.firebase:firebase-analytics:22.2.0'
implementation 'com.google.firebase:firebase-analytics:22.3.0'

//Modules
implementation project(':app-domain')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,15 @@ public class MainPresenterImpl implements MainPresenter {
private List<Note> notes;
private final List<Note> filteredNotes;

private ProgressDialog progressDialog;

public MainPresenterImpl(Context context, @NonNull Activity activity, MainView mainView) {
this.context = context;
this.activity = activity;
this.mainView = mainView;
filteredNotes = new ArrayList<>();
notes = new ArrayList<>();
progressDialog = new ProgressDialog(activity, R.style.CustomProgressDialog);
}

@Override
Expand Down Expand Up @@ -87,93 +90,116 @@ public void initMobileSdk() {
});
}

private void showProgressDialog() {
progressDialog.showDialog();
}

private void dismissProgressDialog() {
progressDialog.dismiss();
}


@Override
public void initNotes(Conditions conditions) {
mainView.showProgressDialog();
if (conditions instanceof Conditions.Search) {
filteredNotes.clear();
String query = ((Conditions.Search) conditions).getQuery();

for (Note note : notes) {
if (note.getNoteName().contains(query) ||
note.getNoteText().contains(query) ||
new SimpleDateFormat("dd.MM.yyyy HH.mm", Locale.getDefault()).format(new Date(note.getAddNoteTime())).contains(query)
) {
filteredNotes.add(note);
new Thread(() -> {
if (conditions instanceof Conditions.Search) {
filteredNotes.clear();
String query = ((Conditions.Search) conditions).getQuery();

for (Note note : notes) {
if (note.getNoteName().contains(query) ||
note.getNoteText().contains(query) ||
new SimpleDateFormat("dd.MM.yyyy HH.mm", Locale.getDefault()).format(new Date(note.getAddNoteTime())).contains(query)
) {
filteredNotes.add(note);
}
}
RecyclerView.LayoutManager layoutManager;
if (isList) {
layoutManager = new LinearLayoutManager(context);
} else {
layoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
}

mainView.initRecyclerView(filteredNotes, layoutManager);
}
RecyclerView.LayoutManager layoutManager;
if (isList) {
layoutManager = new LinearLayoutManager(context);
} else {
layoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
else if (conditions instanceof Conditions.All) {
notes.clear();
SQLiteDatabaseManager sqLiteDatabaseManager = new SQLiteDatabaseManager(context);
sqLiteDatabaseNotes = sqLiteDatabaseManager.getWritableDatabase();
notes = loadNotes();

isList = true;

activity.runOnUiThread(() -> {
mainView.changeFilterButtonImage(R.drawable.ic_baseline_filter_list);
mainView.initRecyclerView(notes, new LinearLayoutManager(context));
});
}

mainView.initRecyclerView(filteredNotes, layoutManager);
} else if (conditions instanceof Conditions.All) {
notes.clear();
SQLiteDatabaseManager sqLiteDatabaseManager = new SQLiteDatabaseManager(context);
sqLiteDatabaseNotes = sqLiteDatabaseManager.getWritableDatabase();
notes = loadNotes();

isList = true;
mainView.changeFilterButtonImage(R.drawable.ic_baseline_filter_list);
mainView.initRecyclerView(notes, new LinearLayoutManager(context));
}
mainView.dismissProgressDialog();
}).start();
}

@Override
public void initOpenAds() {
mainView.showProgressDialog();
activity.runOnUiThread(this::showProgressDialog);
final AppOpenAdLoader appOpenAdLoader = new AppOpenAdLoader(context);
final AdRequestConfiguration adRequestConfiguration = new AdRequestConfiguration.Builder(AdsIds.OPEN_AD_UNIT_ID).build();

AppOpenAdEventListener appOpenAdEventListener = new AppOpenAdEventListener() {
@Override
public void onAdShown() {
mainView.dismissProgressDialog();
activity.runOnUiThread(() -> dismissProgressDialog());
}

@Override
public void onAdFailedToShow(@NonNull final AdError adError) {
mainView.dismissProgressDialog();
activity.runOnUiThread(() -> dismissProgressDialog());
}

@Override
public void onAdDismissed() {
clearAppOpenAd();
activity.runOnUiThread(() -> dismissProgressDialog());
}

@Override
public void onAdClicked() {
// Called when a click is recorded for an ad.
activity.runOnUiThread(() -> dismissProgressDialog());
}

@Override
public void onAdImpression(@Nullable final ImpressionData impressionData) {
// Called when an impression is recorded for an ad.
activity.runOnUiThread(() -> dismissProgressDialog());
}
};
AppOpenAdLoadListener appOpenAdLoadListener = new AppOpenAdLoadListener() {
@Override
public void onAdLoaded(@NonNull final AppOpenAd appOpenAd) {
dismissProgressDialog();
mainAppOpenAd = appOpenAd;
appOpenAd.setAdEventListener(appOpenAdEventListener);
mainView.dismissProgressDialog();
mainAppOpenAd.show(activity);
activity.runOnUiThread(() -> {
mainAppOpenAd.setAdEventListener(appOpenAdEventListener);
mainAppOpenAd.show(activity);
});
}

@Override
public void onAdFailedToLoad(@NonNull final AdRequestError adRequestError) {
mainView.dismissProgressDialog();
activity.runOnUiThread(() -> dismissProgressDialog());
}
};

appOpenAdLoader.setAdLoadListener(appOpenAdLoadListener);
appOpenAdLoader.loadAd(adRequestConfiguration);
mainView.dismissProgressDialog();

new Thread(() -> {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
activity.runOnUiThread(this::dismissProgressDialog);
});
}

@NonNull
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import ru.plumsoftware.notebook.presentation.activities.main.presenter.MainPresenterImpl;
import ru.plumsoftware.notebook.presentation.adapters.NoteAdapter;
import ru.plumsoftware.notebook.presentation.activities.main.presenter.MainPresenter;
import ru.plumsoftware.notebook.presentation.dialogs.ProgressDialog;

public class MainActivity extends AppCompatActivity implements MainView {

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

private ProgressDialog progressDialog;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Expand All @@ -49,10 +46,6 @@ protected void onCreate(Bundle savedInstanceState) {
filterAsList = findViewById(R.id.filterAsList);
recyclerViewNotes = activity.findViewById(R.id.recyclerViewNotes);
ImageButton addNote = findViewById(R.id.addNote);
progressDialog = new ProgressDialog(context, R.style.CustomProgressDialog);

// load ad
presenter.initOpenAds();

// Clickers
filterAsList.setOnClickListener(view -> presenter.changeListStyle());
Expand All @@ -72,6 +65,13 @@ public boolean onQueryTextChange(String s) {
return false;
}
});

// load ad
presenter.initMobileSdk();
presenter.initOpenAds();

// Load notes
presenter.initNotes(new Conditions.All());
}

@Override
Expand All @@ -94,22 +94,4 @@ public void initRecyclerView(List<Note> notes, RecyclerView.LayoutManager layout
recyclerViewNotes.setAdapter(noteAdapter);
recyclerViewNotes.setVisibility(View.VISIBLE);
}

@Override
public void showProgressDialog() {
progressDialog.showDialog();
}

@Override
public void dismissProgressDialog() {
progressDialog.dismiss();
}

@Override
protected void onResume() {
super.onResume();

presenter.initNotes(new Conditions.All());
presenter.initMobileSdk();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,4 @@
public interface MainView {
void changeFilterButtonImage(@DrawableRes int res);
void initRecyclerView(List<Note> notes, RecyclerView.LayoutManager layoutManager);

void showProgressDialog();
void dismissProgressDialog();
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
package ru.plumsoftware.notebook.presentation.dialogs;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
Expand All @@ -13,6 +16,7 @@ public class ProgressDialog {
private Dialog dialog;
private Context context;
private int theme;
private final Handler mainThreadHandler = new Handler(Looper.getMainLooper());

public ProgressDialog(Context context) {
this.context = context;
Expand All @@ -24,20 +28,46 @@ public ProgressDialog(Context context, int theme) {
}

public void showDialog() {
try {
@SuppressLint("InflateParams") View view = LayoutInflater.from(context).inflate(R.layout.progress_dialog, null, false);
if (context instanceof Activity) {
Activity activity = (Activity) context;
if (activity.isFinishing() || activity.isDestroyed()) {

return;
}
}

mainThreadHandler.post(() -> {
@SuppressLint("InflateParams") View view = LayoutInflater.from(context).inflate(R.layout.progress_dialog,null, true);
dialog = new Dialog(context, theme);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setCancelable(false);
dialog.setContentView(view);
dialog.show();
} catch (Exception e) {
e.printStackTrace();
}
try {
dialog.show();
} catch (Exception e) {
e.printStackTrace();
}
});
}

public void dismiss() {
if (dialog != null)
dialog.dismiss();
if (context instanceof Activity) {
Activity activity = (Activity) context;
if (activity.isFinishing() || activity.isDestroyed()) {
return;
}
}

mainThreadHandler.post(() -> {
if (dialog != null && dialog.isShowing()) {
try {
dialog.dismiss();
} catch (final IllegalArgumentException e) {
e.printStackTrace();
} catch (final Exception e) {
e.printStackTrace();
}
}
});
}
}
Loading