mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-23 04:33:54 -04:00
Refactor: Use AlertDialogShower for all AlertDialogs
This commit is contained in:
parent
0836b87055
commit
544fcd2215
@ -25,6 +25,7 @@ import org.kiwix.kiwixmobile.downloader.DownloadFragment
|
||||
import org.kiwix.kiwixmobile.zim_manager.fileselect_view.ZimFileSelectFragment
|
||||
import org.kiwix.kiwixmobile.zim_manager.fileselect_view.effects.DeleteFiles
|
||||
import org.kiwix.kiwixmobile.zim_manager.library_view.LibraryFragment
|
||||
import org.kiwix.kiwixmobile.zim_manager.local_file_transfer.LocalFileTransferActivity
|
||||
|
||||
@Subcomponent(modules = [ActivityModule::class])
|
||||
interface ActivityComponent {
|
||||
@ -36,6 +37,8 @@ interface ActivityComponent {
|
||||
|
||||
fun inject(deleteFiles: DeleteFiles)
|
||||
|
||||
fun inject(localFileTransferActivity: LocalFileTransferActivity)
|
||||
|
||||
@Subcomponent.Builder
|
||||
interface Builder {
|
||||
|
||||
|
@ -32,9 +32,6 @@ import org.kiwix.kiwixmobile.main.KiwixWebView;
|
||||
import org.kiwix.kiwixmobile.search.AutoCompleteAdapter;
|
||||
import org.kiwix.kiwixmobile.settings.KiwixSettingsActivity;
|
||||
import org.kiwix.kiwixmobile.zim_manager.DownloadNotificationClickedReceiver;
|
||||
import org.kiwix.kiwixmobile.zim_manager.fileselect_view.ZimFileSelectFragment;
|
||||
import org.kiwix.kiwixmobile.zim_manager.library_view.LibraryFragment;
|
||||
import org.kiwix.kiwixmobile.zim_manager.local_file_transfer.LocalFileTransferActivity;
|
||||
|
||||
@Singleton
|
||||
@Component(modules = {
|
||||
@ -68,6 +65,4 @@ public interface ApplicationComponent {
|
||||
void inject(AutoCompleteAdapter autoCompleteAdapter);
|
||||
|
||||
void inject(DownloadNotificationClickedReceiver downloadNotificationClickedReceiver);
|
||||
|
||||
void inject(LocalFileTransferActivity localFileTransferActivity);
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package org.kiwix.kiwixmobile.utils
|
||||
|
||||
import android.net.wifi.p2p.WifiP2pDevice
|
||||
import org.kiwix.kiwixmobile.R
|
||||
import org.kiwix.kiwixmobile.zim_manager.fileselect_view.adapter.BooksOnDiskListItem.BookOnDisk
|
||||
|
||||
@ -16,6 +17,20 @@ sealed class KiwixDialog(
|
||||
constructor(bookOnDisk: BookOnDisk) : this(arrayOf(bookOnDisk.book.title))
|
||||
}
|
||||
|
||||
object LocationPermissionRationale : KiwixDialog( // For the local file transfer module
|
||||
null, R.string.permission_rationale_location, android.R.string.yes, android.R.string.cancel
|
||||
)
|
||||
|
||||
object StoragePermissionRationale : KiwixDialog( // For the local file transfer module
|
||||
null, R.string.permission_rationale_storage, android.R.string.yes, android.R.string.cancel
|
||||
)
|
||||
|
||||
data class FileTransferConfirmation(override val args: Array<out Any>) : KiwixDialog( // For the local file transfer module
|
||||
null, R.string.transfer_to, R.string.yes, android.R.string.cancel
|
||||
), HasBodyFormatArgs {
|
||||
constructor(selectedPeerDevice: WifiP2pDevice) : this(arrayOf(selectedPeerDevice.deviceName))
|
||||
}
|
||||
|
||||
open class YesNoDialog(
|
||||
title: Int,
|
||||
message: Int
|
||||
|
@ -1,6 +1,5 @@
|
||||
package org.kiwix.kiwixmobile.zim_manager.local_file_transfer;
|
||||
|
||||
import android.content.DialogInterface;
|
||||
import android.net.Uri;
|
||||
import android.net.wifi.p2p.WifiP2pDevice;
|
||||
import android.net.wifi.p2p.WifiP2pDeviceList;
|
||||
@ -19,7 +18,6 @@ import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
import androidx.fragment.app.ListFragment;
|
||||
@ -27,8 +25,12 @@ import androidx.fragment.app.ListFragment;
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.Unbinder;
|
||||
import kotlin.Unit;
|
||||
import kotlin.jvm.functions.Function0;
|
||||
import org.kiwix.kiwixmobile.BuildConfig;
|
||||
import org.kiwix.kiwixmobile.R;
|
||||
import org.kiwix.kiwixmobile.utils.AlertDialogShower;
|
||||
import org.kiwix.kiwixmobile.utils.KiwixDialog;
|
||||
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
|
||||
|
||||
import java.io.IOException;
|
||||
@ -60,6 +62,7 @@ public class DeviceListFragment extends ListFragment implements WifiP2pManager.P
|
||||
public static int FILE_TRANSFER_PORT = 8008;
|
||||
|
||||
private SharedPreferenceUtil sharedPreferenceUtil;
|
||||
private AlertDialogShower alertDialogShower;
|
||||
|
||||
private LocalFileTransferActivity localFileTransferActivity; // Parent activity, starting point of the module
|
||||
private TransferProgressFragment transferProgressFragment; // Sibling fragment, for displaying transfer progress
|
||||
@ -131,16 +134,12 @@ public class DeviceListFragment extends ListFragment implements WifiP2pManager.P
|
||||
return;
|
||||
|
||||
selectedPeerDevice = (WifiP2pDevice) getListAdapter().getItem(position);
|
||||
new AlertDialog.Builder(localFileTransferActivity)
|
||||
.setMessage(getString(R.string.transfer_to, selectedPeerDevice.deviceName))
|
||||
.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
((DeviceActionListener) localFileTransferActivity).connect(selectedPeerDevice);
|
||||
}
|
||||
})
|
||||
.setNegativeButton(android.R.string.no, null)
|
||||
.show();
|
||||
alertDialogShower.show(new KiwixDialog.FileTransferConfirmation(selectedPeerDevice), new Function0<Unit>() {
|
||||
@Override public Unit invoke() {
|
||||
((DeviceActionListener) localFileTransferActivity).connect(selectedPeerDevice);
|
||||
return Unit.INSTANCE;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void displayTransferProgressFragment() {
|
||||
@ -287,8 +286,9 @@ public class DeviceListFragment extends ListFragment implements WifiP2pManager.P
|
||||
return (filesSent == totalFilesForTransfer);
|
||||
}
|
||||
|
||||
public void setSharedPreferenceUtil(SharedPreferenceUtil sharedPreferenceUtil) {
|
||||
public void performFieldInjection(SharedPreferenceUtil sharedPreferenceUtil, AlertDialogShower alertDialogShower) {
|
||||
this.sharedPreferenceUtil = sharedPreferenceUtil;
|
||||
this.alertDialogShower = alertDialogShower;
|
||||
}
|
||||
|
||||
public String getZimStorageRootPath() {
|
||||
|
@ -1,13 +1,10 @@
|
||||
package org.kiwix.kiwixmobile.zim_manager.local_file_transfer;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Dialog;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.location.LocationManager;
|
||||
import android.net.Uri;
|
||||
@ -17,7 +14,6 @@ import android.net.wifi.p2p.WifiP2pDevice;
|
||||
import android.net.wifi.p2p.WifiP2pManager;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
@ -26,18 +22,20 @@ import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentTransaction;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import kotlin.Unit;
|
||||
import kotlin.jvm.functions.Function0;
|
||||
import org.kiwix.kiwixmobile.KiwixApplication;
|
||||
import org.kiwix.kiwixmobile.R;
|
||||
import org.kiwix.kiwixmobile.utils.AlertDialogShower;
|
||||
import org.kiwix.kiwixmobile.utils.KiwixDialog;
|
||||
import org.kiwix.kiwixmobile.utils.SharedPreferenceUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@ -63,8 +61,8 @@ public class LocalFileTransferActivity extends AppCompatActivity implements Wifi
|
||||
private static final int PERMISSION_REQUEST_CODE_COARSE_LOCATION = 1;
|
||||
private static final int PERMISSION_REQUEST_CODE_STORAGE_WRITE_ACCESS = 2;
|
||||
|
||||
@Inject
|
||||
SharedPreferenceUtil sharedPreferenceUtil;
|
||||
@Inject SharedPreferenceUtil sharedPreferenceUtil;
|
||||
@Inject AlertDialogShower alertDialogShower;
|
||||
|
||||
@BindView(R.id.toolbar_local_file_transfer) Toolbar actionBar;
|
||||
|
||||
@ -82,12 +80,14 @@ public class LocalFileTransferActivity extends AppCompatActivity implements Wifi
|
||||
private final IntentFilter intentFilter = new IntentFilter(); // For specifying broadcasts (of the P2P API) that the module needs to respond to
|
||||
private BroadcastReceiver receiver = null; // For receiving the broadcasts given by above filter
|
||||
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_local_file_transfer);
|
||||
KiwixApplication.getApplicationComponent().inject(this);
|
||||
KiwixApplication.getApplicationComponent().activityComponent()
|
||||
.activity(this)
|
||||
.build()
|
||||
.inject(this);
|
||||
ButterKnife.bind(this);
|
||||
|
||||
/*
|
||||
@ -153,7 +153,7 @@ public class LocalFileTransferActivity extends AppCompatActivity implements Wifi
|
||||
|
||||
final DeviceListFragment deviceListFragment = (DeviceListFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_device_list);
|
||||
deviceListFragment.onInitiateDiscovery();
|
||||
deviceListFragment.setSharedPreferenceUtil(sharedPreferenceUtil);
|
||||
deviceListFragment.performFieldInjection(sharedPreferenceUtil, alertDialogShower);
|
||||
manager.discoverPeers(channel, new WifiP2pManager.ActionListener() {
|
||||
@Override
|
||||
public void onSuccess() {
|
||||
@ -334,15 +334,12 @@ public class LocalFileTransferActivity extends AppCompatActivity implements Wifi
|
||||
if(ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
|
||||
|
||||
if(shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_COARSE_LOCATION)) {
|
||||
new AlertDialog.Builder(this)
|
||||
.setMessage(R.string.permission_rationale_location)
|
||||
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, PERMISSION_REQUEST_CODE_COARSE_LOCATION);
|
||||
}
|
||||
})
|
||||
.show();
|
||||
alertDialogShower.show(KiwixDialog.LocationPermissionRationale.INSTANCE, new Function0<Unit>() {
|
||||
@Override public Unit invoke() {
|
||||
requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, PERMISSION_REQUEST_CODE_COARSE_LOCATION);
|
||||
return Unit.INSTANCE;
|
||||
}
|
||||
});
|
||||
|
||||
} else {
|
||||
requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, PERMISSION_REQUEST_CODE_COARSE_LOCATION);
|
||||
@ -361,15 +358,12 @@ public class LocalFileTransferActivity extends AppCompatActivity implements Wifi
|
||||
if(ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
|
||||
|
||||
if(shouldShowRequestPermissionRationale(Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
|
||||
new AlertDialog.Builder(this)
|
||||
.setMessage(R.string.permission_rationale_storage)
|
||||
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
requestPermissions(new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSION_REQUEST_CODE_STORAGE_WRITE_ACCESS);
|
||||
}
|
||||
})
|
||||
.show();
|
||||
alertDialogShower.show(KiwixDialog.StoragePermissionRationale.INSTANCE, new Function0<Unit>() {
|
||||
@Override public Unit invoke() {
|
||||
requestPermissions(new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSION_REQUEST_CODE_STORAGE_WRITE_ACCESS);
|
||||
return Unit.INSTANCE;
|
||||
}
|
||||
});
|
||||
|
||||
} else {
|
||||
requestPermissions(new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSION_REQUEST_CODE_STORAGE_WRITE_ACCESS);
|
||||
|
Loading…
x
Reference in New Issue
Block a user