forked from organicmaps/organicmaps
[android] Replace deprecated startActivityForResult()
Signed-off-by: Roman Tsisyk <roman@tsisyk.com>
This commit is contained in:
parent
0050b1b560
commit
1a304a4906
3 changed files with 23 additions and 31 deletions
android/src/app/organicmaps
|
@ -12,6 +12,8 @@ import android.widget.CheckBox;
|
|||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.activity.result.ActivityResultLauncher;
|
||||
import androidx.activity.result.contract.ActivityResultContracts;
|
||||
import androidx.annotation.CallSuper;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
@ -42,8 +44,6 @@ public class DownloadResourcesLegacyActivity extends BaseMwmFragmentActivity
|
|||
{
|
||||
private static final String TAG = DownloadResourcesLegacyActivity.class.getSimpleName();
|
||||
|
||||
private static final int REQ_CODE_API_RESULT = 10;
|
||||
|
||||
public static final String EXTRA_COUNTRY = "country";
|
||||
|
||||
// Error codes, should match the same codes in JNI
|
||||
|
@ -64,6 +64,9 @@ public class DownloadResourcesLegacyActivity extends BaseMwmFragmentActivity
|
|||
@Nullable
|
||||
private MapTask mMapTaskToForward;
|
||||
|
||||
@NonNull
|
||||
private ActivityResultLauncher<Intent> mApiRequest;
|
||||
|
||||
private boolean mAreResourcesDownloaded;
|
||||
|
||||
private static final int DOWNLOAD = 0;
|
||||
|
@ -194,6 +197,10 @@ public class DownloadResourcesLegacyActivity extends BaseMwmFragmentActivity
|
|||
super.onSafeCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_download_resources);
|
||||
initViewsAndListeners();
|
||||
mApiRequest = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
|
||||
setResult(result.getResultCode(), result.getData());
|
||||
finish();
|
||||
});
|
||||
|
||||
if (prepareFilesDownload(false))
|
||||
{
|
||||
|
@ -213,6 +220,8 @@ public class DownloadResourcesLegacyActivity extends BaseMwmFragmentActivity
|
|||
protected void onSafeDestroy()
|
||||
{
|
||||
super.onSafeDestroy();
|
||||
mApiRequest.unregister();
|
||||
mApiRequest = null;
|
||||
Utils.keepScreenOn(false, getWindow());
|
||||
if (mCountryDownloadListenerSlot != 0)
|
||||
{
|
||||
|
@ -359,7 +368,7 @@ public class DownloadResourcesLegacyActivity extends BaseMwmFragmentActivity
|
|||
if (ParsedMwmRequest.getCurrentRequest() != null)
|
||||
{
|
||||
// Wait for the result from MwmActivity for API callers.
|
||||
UiUtils.startActivityForResult(this, intent, REQ_CODE_API_RESULT);
|
||||
mApiRequest.launch(intent);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -368,16 +377,6 @@ public class DownloadResourcesLegacyActivity extends BaseMwmFragmentActivity
|
|||
finish();
|
||||
}
|
||||
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data)
|
||||
{
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (requestCode == REQ_CODE_API_RESULT)
|
||||
{
|
||||
setResult(resultCode, data);
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
private void finishFilesDownload(int result)
|
||||
{
|
||||
if (result == ERR_NO_MORE_FILES)
|
||||
|
|
|
@ -9,6 +9,8 @@ import android.content.Intent;
|
|||
import android.content.pm.PackageManager;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.activity.result.ActivityResult;
|
||||
import androidx.activity.result.ActivityResultCallback;
|
||||
import androidx.activity.result.ActivityResultLauncher;
|
||||
import androidx.activity.result.contract.ActivityResultContracts;
|
||||
import androidx.annotation.NonNull;
|
||||
|
@ -34,7 +36,6 @@ public class SplashActivity extends AppCompatActivity implements BaseActivity
|
|||
private static final String TAG = SplashActivity.class.getSimpleName();
|
||||
private static final String EXTRA_ACTIVITY_TO_START = "extra_activity_to_start";
|
||||
public static final String EXTRA_INITIAL_INTENT = "extra_initial_intent";
|
||||
private static final int REQ_CODE_API_RESULT = 10;
|
||||
|
||||
private static final long DELAY = 100;
|
||||
|
||||
|
@ -43,6 +44,8 @@ public class SplashActivity extends AppCompatActivity implements BaseActivity
|
|||
@SuppressWarnings("NotNullFieldNotInitialized")
|
||||
@NonNull
|
||||
private ActivityResultLauncher<String[]> mPermissionRequest;
|
||||
@NonNull
|
||||
private ActivityResultLauncher<Intent> mApiRequest;
|
||||
|
||||
@NonNull
|
||||
private final Runnable mInitCoreDelayedTask = new Runnable()
|
||||
|
@ -79,6 +82,10 @@ public class SplashActivity extends AppCompatActivity implements BaseActivity
|
|||
setContentView(R.layout.activity_splash);
|
||||
mPermissionRequest = registerForActivityResult(new ActivityResultContracts.RequestMultiplePermissions(),
|
||||
result -> Config.setLocationRequested());
|
||||
mApiRequest = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
|
||||
setResult(result.getResultCode(), result.getData());
|
||||
finish();
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -138,6 +145,8 @@ public class SplashActivity extends AppCompatActivity implements BaseActivity
|
|||
mBaseDelegate.onDestroy();
|
||||
mPermissionRequest.unregister();
|
||||
mPermissionRequest = null;
|
||||
mApiRequest.unregister();
|
||||
mApiRequest = null;
|
||||
}
|
||||
|
||||
private void showFatalErrorDialog(@StringRes int titleId, @StringRes int messageId)
|
||||
|
@ -195,7 +204,7 @@ public class SplashActivity extends AppCompatActivity implements BaseActivity
|
|||
if (!initialIntent.hasCategory(Intent.CATEGORY_LAUNCHER))
|
||||
{
|
||||
// Wait for the result from MwmActivity for API callers.
|
||||
startActivityForResult(result, REQ_CODE_API_RESULT);
|
||||
mApiRequest.launch(result);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -204,16 +213,6 @@ public class SplashActivity extends AppCompatActivity implements BaseActivity
|
|||
finish();
|
||||
}
|
||||
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data)
|
||||
{
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (requestCode == REQ_CODE_API_RESULT)
|
||||
{
|
||||
setResult(resultCode, data);
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@NonNull
|
||||
public Activity get()
|
||||
|
|
|
@ -539,12 +539,6 @@ public final class UiUtils
|
|||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation") // https://github.com/organicmaps/organicmaps/issues/3630
|
||||
public static void startActivityForResult(@NonNull AppCompatActivity activity, @NonNull Intent intent, int requestCode)
|
||||
{
|
||||
activity.startActivityForResult(intent, requestCode);
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation") // https://github.com/organicmaps/organicmaps/issues/3630
|
||||
public static void startActivityForResult(@NonNull Fragment fragment, @NonNull Intent intent, int requestCode)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue