mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-09 07:16:04 -04:00
Android Downloading ZIM list require confirmation on network
This commit is contained in:
parent
2d911d91b2
commit
b583aa3e15
@ -14,7 +14,22 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:id="@+id/library_list" />
|
android:id="@+id/library_list" />
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:layout_marginTop="200dp"
|
||||||
|
android:text="@string/get_library_over_network"
|
||||||
|
android:layout_centerHorizontal="true"
|
||||||
|
android:id="@+id/network_permission_text"/>
|
||||||
|
<Button
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="230dp"
|
||||||
|
android:id="@+id/network_permission_button"
|
||||||
|
android:text="@string/proceed"
|
||||||
|
android:layout_centerHorizontal="true"
|
||||||
|
android:visibility="gone"/>
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
@ -114,4 +114,6 @@
|
|||||||
<string name="zim_nopic">No Pictures</string>
|
<string name="zim_nopic">No Pictures</string>
|
||||||
<string name="open_partial_zim">This file could be incomplete. Do you wish to attempt to open it?</string>
|
<string name="open_partial_zim">This file could be incomplete. Do you wish to attempt to open it?</string>
|
||||||
<string name="no_network_connection">No network connection</string>
|
<string name="no_network_connection">No network connection</string>
|
||||||
|
<string name="get_library_over_network">Use network to download ZIM list. (Approximately 6MB)</string>
|
||||||
|
<string name="proceed">Proceed</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -28,6 +28,7 @@ import android.view.LayoutInflater;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.AdapterView;
|
import android.widget.AdapterView;
|
||||||
|
import android.widget.Button;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
import android.widget.ProgressBar;
|
import android.widget.ProgressBar;
|
||||||
@ -67,6 +68,8 @@ public class LibraryFragment extends Fragment implements AdapterView.OnItemClick
|
|||||||
@BindView(R.id.progressBar) ProgressBar progressBar;
|
@BindView(R.id.progressBar) ProgressBar progressBar;
|
||||||
@BindView(R.id.progressbar_message) TextView progressBarMessage;
|
@BindView(R.id.progressbar_message) TextView progressBarMessage;
|
||||||
@BindView(R.id.progressbar_layout) RelativeLayout progressBarLayout;
|
@BindView(R.id.progressbar_layout) RelativeLayout progressBarLayout;
|
||||||
|
@BindView(R.id.network_permission_text) TextView permissionText;
|
||||||
|
@BindView(R.id.network_permission_button) Button permissionButton;
|
||||||
|
|
||||||
|
|
||||||
private KiwixService kiwixService;
|
private KiwixService kiwixService;
|
||||||
@ -102,32 +105,16 @@ public class LibraryFragment extends Fragment implements AdapterView.OnItemClick
|
|||||||
// setContentView(R.layout.activity_layout);
|
// setContentView(R.layout.activity_layout);
|
||||||
ButterKnife.bind(this, llLayout);
|
ButterKnife.bind(this, llLayout);
|
||||||
|
|
||||||
progressBar.setVisibility(View.VISIBLE);
|
|
||||||
progressBarMessage.setVisibility(View.VISIBLE);
|
|
||||||
progressBarLayout.setVisibility(View.VISIBLE);
|
|
||||||
|
|
||||||
kiwixService = ((KiwixApplication) super.getActivity().getApplication()).getKiwixService();
|
kiwixService = ((KiwixApplication) super.getActivity().getApplication()).getKiwixService();
|
||||||
conMan = (ConnectivityManager) super.getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
|
conMan = (ConnectivityManager) super.getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||||
NetworkInfo network = conMan.getActiveNetworkInfo();
|
NetworkInfo network = conMan.getActiveNetworkInfo();
|
||||||
bookDao = new BookDao(new KiwixDatabase(super.getActivity()));
|
bookDao = new BookDao(new KiwixDatabase(super.getActivity()));
|
||||||
if (network != null && network.isConnected()) {
|
if (network != null && network.isConnected()) {
|
||||||
kiwixService.getLibrary()
|
if (isWiFi()) {
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
getLibraryData();
|
||||||
.subscribe(library -> {
|
} else {
|
||||||
books = library.getBooks();
|
displayNetworkConfirmation();
|
||||||
if (active) {
|
}
|
||||||
libraryAdapter = new LibraryAdapter(super.getActivity(), new ArrayList<LibraryNetworkEntity.Book>(books));
|
|
||||||
libraryList.setAdapter(libraryAdapter);
|
|
||||||
progressBarLayout.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
},error -> {
|
|
||||||
noNetworkConnection();
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
libraryList.setOnItemClickListener(this);
|
|
||||||
|
|
||||||
active = true;
|
|
||||||
} else {
|
} else {
|
||||||
noNetworkConnection();
|
noNetworkConnection();
|
||||||
}
|
}
|
||||||
@ -138,6 +125,42 @@ public class LibraryFragment extends Fragment implements AdapterView.OnItemClick
|
|||||||
return llLayout; // We must return the loaded Layout
|
return llLayout; // We must return the loaded Layout
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void getLibraryData(){
|
||||||
|
progressBar.setVisibility(View.VISIBLE);
|
||||||
|
progressBarMessage.setVisibility(View.VISIBLE);
|
||||||
|
progressBarLayout.setVisibility(View.VISIBLE);
|
||||||
|
kiwixService.getLibrary()
|
||||||
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
.subscribe(library -> {
|
||||||
|
books = library.getBooks();
|
||||||
|
if (active) {
|
||||||
|
libraryAdapter = new LibraryAdapter(super.getActivity(), new ArrayList<LibraryNetworkEntity.Book>(books));
|
||||||
|
libraryList.setAdapter(libraryAdapter);
|
||||||
|
progressBarLayout.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
},error -> {
|
||||||
|
noNetworkConnection();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
libraryList.setOnItemClickListener(this);
|
||||||
|
|
||||||
|
active = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void displayNetworkConfirmation(){
|
||||||
|
permissionText.setVisibility(View.VISIBLE);
|
||||||
|
permissionButton.setVisibility(View.VISIBLE);
|
||||||
|
permissionButton.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View view) {
|
||||||
|
getLibraryData();
|
||||||
|
permissionButton.setVisibility(View.GONE);
|
||||||
|
permissionText.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public void noNetworkConnection() {
|
public void noNetworkConnection() {
|
||||||
progressBar.setVisibility(View.INVISIBLE);
|
progressBar.setVisibility(View.INVISIBLE);
|
||||||
progressBarLayout.setVisibility(View.VISIBLE);
|
progressBarLayout.setVisibility(View.VISIBLE);
|
||||||
@ -167,19 +190,28 @@ public class LibraryFragment extends Fragment implements AdapterView.OnItemClick
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
bookDao.saveBook(books.get(position));
|
bookDao.saveBook(books.get(position));
|
||||||
|
if (isWiFi()){
|
||||||
|
mobileDownloadDialog(position);
|
||||||
|
} else {
|
||||||
|
downloadFile(position, books.get(position));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isWiFi(){
|
||||||
if (Build.VERSION.SDK_INT >= 23) {
|
if (Build.VERSION.SDK_INT >= 23) {
|
||||||
NetworkInfo network = conMan.getActiveNetworkInfo();
|
NetworkInfo network = conMan.getActiveNetworkInfo();
|
||||||
if (network.getType() != ConnectivityManager.TYPE_WIFI){
|
if (network.getType() != ConnectivityManager.TYPE_WIFI){
|
||||||
mobileDownloadDialog(position);
|
return false;
|
||||||
} else {
|
} else {
|
||||||
downloadFile(position, books.get(position));
|
return true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
NetworkInfo wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
|
NetworkInfo wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
|
||||||
if (!wifi.isConnected()){
|
if (!wifi.isConnected()){
|
||||||
mobileDownloadDialog(position);
|
return false;
|
||||||
} else {
|
} else {
|
||||||
downloadFile(position, books.get(position));
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user