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