Add one article per day in history

This commit is contained in:
Abdul Wadood 2018-07-02 12:17:25 +05:30 committed by Isaac Hutt
parent 4a71aef88b
commit 8af4808022
7 changed files with 56 additions and 59 deletions

View File

@ -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();
}
}

View File

@ -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);
}

View File

@ -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));

View File

@ -8,5 +8,6 @@ public class HistorySpec {
public String favicon;
public String historyUrl;
public String historyTitle;
public String date;
public long timeStamp;
}

View File

@ -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();
}
}

View File

@ -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());
}
}

View File

@ -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);