mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-09 07:16:04 -04:00
Add one article per day in history
This commit is contained in:
parent
4a71aef88b
commit
8af4808022
@ -1,16 +1,9 @@
|
||||
package org.kiwix.kiwixmobile.data;
|
||||
|
||||
import org.kiwix.kiwixmobile.di.qualifiers.Computation;
|
||||
import org.kiwix.kiwixmobile.di.qualifiers.IO;
|
||||
import org.kiwix.kiwixmobile.di.qualifiers.MainThread;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
import io.reactivex.Scheduler;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
|
||||
@Module
|
||||
public class DataModule {
|
||||
@ -19,22 +12,4 @@ public class DataModule {
|
||||
public DataSource provideDataSource(Repository repository) {
|
||||
return repository;
|
||||
}
|
||||
|
||||
@IO
|
||||
@Provides
|
||||
public Scheduler provideIoThread() {
|
||||
return Schedulers.io();
|
||||
}
|
||||
|
||||
@MainThread
|
||||
@Provides
|
||||
public Scheduler provideMainThread() {
|
||||
return AndroidSchedulers.mainThread();
|
||||
}
|
||||
|
||||
@Computation
|
||||
@Provides
|
||||
public Scheduler provideComputationThread() {
|
||||
return Schedulers.computation();
|
||||
}
|
||||
}
|
||||
|
@ -10,8 +10,6 @@ import org.kiwix.kiwixmobile.library.entity.LibraryNetworkEntity;
|
||||
import org.kiwix.kiwixmobile.models.Language;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
@ -94,18 +92,9 @@ public class Repository implements DataSource {
|
||||
histories.add(0, null);
|
||||
}
|
||||
for (int position = 2; position < histories.size(); position++) {
|
||||
if (history != null && histories.get(position) != null) {
|
||||
|
||||
Calendar calendar1 = Calendar.getInstance();
|
||||
calendar1.setTime(new Date(history.getTimeStamp()));
|
||||
|
||||
Calendar calendar2 = Calendar.getInstance();
|
||||
calendar2.setTime(new Date(histories.get(position).getTimeStamp()));
|
||||
|
||||
if (calendar1.get(Calendar.YEAR) != calendar2.get(Calendar.YEAR) ||
|
||||
calendar1.get(Calendar.DAY_OF_YEAR) != calendar2.get(Calendar.DAY_OF_YEAR)) {
|
||||
histories.add(position, null);
|
||||
}
|
||||
if (history != null && histories.get(position) != null &&
|
||||
!history.getDate().equals(histories.get(position).getDate())) {
|
||||
histories.add(position, null);
|
||||
}
|
||||
history = histories.get(position);
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
package org.kiwix.kiwixmobile.data.local.dao;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.yahoo.squidb.data.SquidCursor;
|
||||
import com.yahoo.squidb.sql.Query;
|
||||
|
||||
@ -7,22 +9,29 @@ import org.kiwix.kiwixmobile.data.ZimContentProvider;
|
||||
import org.kiwix.kiwixmobile.data.local.KiwixDatabase;
|
||||
import org.kiwix.kiwixmobile.data.local.entity.History;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
public class HistoryDao {
|
||||
private final Context context;
|
||||
private final KiwixDatabase kiwixDatabase;
|
||||
|
||||
@Inject
|
||||
HistoryDao(KiwixDatabase kiwixDatabase) {
|
||||
HistoryDao(Context context, KiwixDatabase kiwixDatabase) {
|
||||
this.context = context;
|
||||
this.kiwixDatabase = kiwixDatabase;
|
||||
}
|
||||
|
||||
public void saveHistory(String file, String favicon, String url, String title, long timeStamp) {
|
||||
DateFormat dateFormat = android.text.format.DateFormat.getMediumDateFormat(context);
|
||||
String date = dateFormat.format(new Date(timeStamp));
|
||||
kiwixDatabase.deleteWhere(History.class, History.HISTORY_URL.eq(url).and(History.DATE.eq(date)));
|
||||
kiwixDatabase.persist(new History().setZimFile(file).setFavicon(favicon)
|
||||
.setHistoryUrl(url).setHistoryTitle(title).setTimeStamp(timeStamp));
|
||||
.setHistoryUrl(url).setHistoryTitle(title).setTimeStamp(timeStamp).setDate(date));
|
||||
}
|
||||
|
||||
public List<History> getHistoryList(boolean showHistoryCurrentBook) {
|
||||
@ -35,6 +44,7 @@ public class HistoryDao {
|
||||
.query(History.class, query.orderBy(History.TIME_STAMP.desc()))) {
|
||||
while (historySquidCursor.moveToNext()) {
|
||||
History history = new History();
|
||||
history.setDate(historySquidCursor.get(History.DATE));
|
||||
history.setFavicon(historySquidCursor.get(History.FAVICON));
|
||||
history.setHistoryTitle(historySquidCursor.get(History.HISTORY_TITLE));
|
||||
history.setHistoryUrl(historySquidCursor.get(History.HISTORY_URL));
|
||||
|
@ -8,5 +8,6 @@ public class HistorySpec {
|
||||
public String favicon;
|
||||
public String historyUrl;
|
||||
public String historyTitle;
|
||||
public String date;
|
||||
public long timeStamp;
|
||||
}
|
||||
|
@ -21,14 +21,20 @@ import android.app.NotificationManager;
|
||||
import android.content.Context;
|
||||
|
||||
import org.kiwix.kiwixmobile.KiwixApplication;
|
||||
import org.kiwix.kiwixmobile.di.qualifiers.Computation;
|
||||
import org.kiwix.kiwixmobile.di.qualifiers.IO;
|
||||
import org.kiwix.kiwixmobile.di.qualifiers.MainThread;
|
||||
import org.kiwix.kiwixmobile.utils.BookUtils;
|
||||
import org.kiwix.kiwixmobile.utils.LanguageUtils;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
import dagger.android.AndroidInjectionModule;
|
||||
import org.kiwix.kiwixmobile.utils.LanguageUtils;
|
||||
import io.reactivex.Scheduler;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
|
||||
@Module(includes = {ActivityBindingModule.class, AndroidInjectionModule.class})
|
||||
public class ApplicationModule {
|
||||
@ -38,19 +44,45 @@ public class ApplicationModule {
|
||||
this.application = application;
|
||||
}
|
||||
|
||||
@Provides @Singleton Context provideApplicationContext() {
|
||||
@Provides
|
||||
@Singleton
|
||||
Context provideApplicationContext() {
|
||||
return this.application;
|
||||
}
|
||||
|
||||
@Provides @Singleton NotificationManager provideNotificationManager(Context context) {
|
||||
@Provides
|
||||
@Singleton
|
||||
NotificationManager provideNotificationManager(Context context) {
|
||||
return (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
}
|
||||
|
||||
@Provides @Singleton BookUtils provideBookUtils(LanguageUtils.LanguageContainer container) {
|
||||
@Provides
|
||||
@Singleton
|
||||
BookUtils provideBookUtils(LanguageUtils.LanguageContainer container) {
|
||||
return new BookUtils(container);
|
||||
}
|
||||
|
||||
@Provides @Singleton LanguageUtils.LanguageContainer provideLanguageContainer(){
|
||||
@Provides
|
||||
@Singleton
|
||||
LanguageUtils.LanguageContainer provideLanguageContainer() {
|
||||
return new LanguageUtils.LanguageContainer();
|
||||
}
|
||||
|
||||
@IO
|
||||
@Provides
|
||||
public Scheduler provideIoThread() {
|
||||
return Schedulers.io();
|
||||
}
|
||||
|
||||
@MainThread
|
||||
@Provides
|
||||
public Scheduler provideMainThread() {
|
||||
return AndroidSchedulers.mainThread();
|
||||
}
|
||||
|
||||
@Computation
|
||||
@Provides
|
||||
public Scheduler provideComputationThread() {
|
||||
return Schedulers.computation();
|
||||
}
|
||||
}
|
||||
|
@ -12,10 +12,7 @@ import android.widget.TextView;
|
||||
import org.kiwix.kiwixmobile.R;
|
||||
import org.kiwix.kiwixmobile.data.local.entity.History;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
@ -63,9 +60,7 @@ class HistoryAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
item.itemView.setOnLongClickListener(v ->
|
||||
itemClickListener.onItemLongClick(item.favicon, history));
|
||||
} else {
|
||||
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.getDefault());
|
||||
((Category) holder).date.setText(dateFormat.format(new Date(historyList.get(position + 1)
|
||||
.getTimeStamp())));
|
||||
((Category) holder).date.setText(historyList.get(position + 1).getDate());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -37,7 +37,6 @@ import org.kiwix.kiwixmobile.utils.StyleUtils;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import static org.kiwix.kiwixmobile.main.MainActivity.nightMode;
|
||||
import static org.kiwix.kiwixmobile.utils.Constants.CONTACT_EMAIL_ADDRESS;
|
||||
import static org.kiwix.kiwixmobile.utils.Constants.EXTRA_EXTERNAL_LINK;
|
||||
|
||||
@ -47,6 +46,7 @@ public class KiwixWebViewClient extends WebViewClient {
|
||||
put("epub", "application/epub+zip");
|
||||
put("pdf", "application/pdf");
|
||||
}};
|
||||
private final SharedPreferenceUtil sharedPreferenceUtil = new SharedPreferenceUtil(KiwixApplication.getInstance());
|
||||
private View help;
|
||||
private WebViewCallback callback;
|
||||
|
||||
@ -113,7 +113,7 @@ public class KiwixWebViewClient extends WebViewClient {
|
||||
);
|
||||
view.addView(help);
|
||||
ImageView welcome_image = help.findViewById(R.id.welcome_image);
|
||||
if (nightMode) {
|
||||
if (sharedPreferenceUtil.nightMode()) {
|
||||
welcome_image.setImageResource(R.drawable.kiwix_welcome_night);
|
||||
} else {
|
||||
welcome_image.setImageResource(R.drawable.kiwix_welcome);
|
||||
@ -131,12 +131,7 @@ public class KiwixWebViewClient extends WebViewClient {
|
||||
private void inflateHomeView(WebView view) {
|
||||
LayoutInflater inflater = LayoutInflater.from(view.getContext());
|
||||
help = inflater.inflate(R.layout.content_main, view, false);
|
||||
if (nightMode) {
|
||||
ImageView cardImage = help.findViewById(R.id.content_main_card_image);
|
||||
cardImage.setImageResource(R.drawable.ic_home_kiwix_banner_night);
|
||||
}
|
||||
callback.setHomePage(help);
|
||||
SharedPreferenceUtil sharedPreferenceUtil = new SharedPreferenceUtil(KiwixApplication.getInstance());
|
||||
if (sharedPreferenceUtil.nightMode()) {
|
||||
ImageView cardImage = help.findViewById(R.id.content_main_card_image);
|
||||
cardImage.setImageResource(R.drawable.ic_home_kiwix_banner_night);
|
||||
|
Loading…
x
Reference in New Issue
Block a user