android: Consolidate getPrefActivity into FragmentUtils
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> [Samuel: Changed static to non-static import] Signed-off-by: Samuel Holland <samuel@sholland.org>
This commit is contained in:
parent
53e8d425e9
commit
99cf2152c4
@ -14,12 +14,11 @@ import android.support.design.widget.Snackbar;
|
|||||||
import android.support.v7.preference.Preference;
|
import android.support.v7.preference.Preference;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.ContextThemeWrapper;
|
|
||||||
|
|
||||||
import com.wireguard.android.Application;
|
import com.wireguard.android.Application;
|
||||||
import com.wireguard.android.R;
|
import com.wireguard.android.R;
|
||||||
import com.wireguard.android.activity.SettingsActivity;
|
|
||||||
import com.wireguard.android.util.ExceptionLoggers;
|
import com.wireguard.android.util.ExceptionLoggers;
|
||||||
|
import com.wireguard.android.util.FragmentUtils;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -40,16 +39,6 @@ public class LogExporterPreference extends Preference {
|
|||||||
super(context, attrs);
|
super(context, attrs);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static SettingsActivity getPrefActivity(final Preference preference) {
|
|
||||||
final Context context = preference.getContext();
|
|
||||||
if (context instanceof ContextThemeWrapper) {
|
|
||||||
if (((ContextThemeWrapper) context).getBaseContext() instanceof SettingsActivity) {
|
|
||||||
return ((SettingsActivity) ((ContextThemeWrapper) context).getBaseContext());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void exportLog() {
|
private void exportLog() {
|
||||||
Application.getAsyncWorker().supplyAsync(() -> {
|
Application.getAsyncWorker().supplyAsync(() -> {
|
||||||
final File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
|
final File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
|
||||||
@ -90,7 +79,7 @@ public class LogExporterPreference extends Preference {
|
|||||||
final String message = getContext().getString(R.string.log_export_error, error);
|
final String message = getContext().getString(R.string.log_export_error, error);
|
||||||
Log.e(TAG, message, throwable);
|
Log.e(TAG, message, throwable);
|
||||||
Snackbar.make(
|
Snackbar.make(
|
||||||
getPrefActivity(this).findViewById(android.R.id.content),
|
FragmentUtils.getPrefActivity(this).findViewById(android.R.id.content),
|
||||||
message, Snackbar.LENGTH_LONG).show();
|
message, Snackbar.LENGTH_LONG).show();
|
||||||
setEnabled(true);
|
setEnabled(true);
|
||||||
} else {
|
} else {
|
||||||
@ -113,7 +102,7 @@ public class LogExporterPreference extends Preference {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onClick() {
|
protected void onClick() {
|
||||||
getPrefActivity(this).ensurePermissions(
|
FragmentUtils.getPrefActivity(this).ensurePermissions(
|
||||||
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
|
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
|
||||||
(permissions, granted) -> {
|
(permissions, granted) -> {
|
||||||
if (granted.length > 0 && granted[0] == PackageManager.PERMISSION_GRANTED) {
|
if (granted.length > 0 && granted[0] == PackageManager.PERMISSION_GRANTED) {
|
||||||
|
@ -14,13 +14,12 @@ import android.support.design.widget.Snackbar;
|
|||||||
import android.support.v7.preference.Preference;
|
import android.support.v7.preference.Preference;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.ContextThemeWrapper;
|
|
||||||
|
|
||||||
import com.wireguard.android.Application;
|
import com.wireguard.android.Application;
|
||||||
import com.wireguard.android.R;
|
import com.wireguard.android.R;
|
||||||
import com.wireguard.android.activity.SettingsActivity;
|
|
||||||
import com.wireguard.android.model.Tunnel;
|
import com.wireguard.android.model.Tunnel;
|
||||||
import com.wireguard.android.util.ExceptionLoggers;
|
import com.wireguard.android.util.ExceptionLoggers;
|
||||||
|
import com.wireguard.android.util.FragmentUtils;
|
||||||
import com.wireguard.config.Config;
|
import com.wireguard.config.Config;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -47,16 +46,6 @@ public class ZipExporterPreference extends Preference {
|
|||||||
super(context, attrs);
|
super(context, attrs);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static SettingsActivity getPrefActivity(final Preference preference) {
|
|
||||||
final Context context = preference.getContext();
|
|
||||||
if (context instanceof ContextThemeWrapper) {
|
|
||||||
if (((ContextThemeWrapper) context).getBaseContext() instanceof SettingsActivity) {
|
|
||||||
return ((SettingsActivity) ((ContextThemeWrapper) context).getBaseContext());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void exportZip() {
|
private void exportZip() {
|
||||||
final List<Tunnel> tunnels = new ArrayList<>(Application.getTunnelManager().getTunnels());
|
final List<Tunnel> tunnels = new ArrayList<>(Application.getTunnelManager().getTunnels());
|
||||||
final List<CompletableFuture<Config>> futureConfigs = new ArrayList<>(tunnels.size());
|
final List<CompletableFuture<Config>> futureConfigs = new ArrayList<>(tunnels.size());
|
||||||
@ -96,7 +85,7 @@ public class ZipExporterPreference extends Preference {
|
|||||||
final String message = getContext().getString(R.string.zip_export_error, error);
|
final String message = getContext().getString(R.string.zip_export_error, error);
|
||||||
Log.e(TAG, message, throwable);
|
Log.e(TAG, message, throwable);
|
||||||
Snackbar.make(
|
Snackbar.make(
|
||||||
getPrefActivity(this).findViewById(android.R.id.content),
|
FragmentUtils.getPrefActivity(this).findViewById(android.R.id.content),
|
||||||
message, Snackbar.LENGTH_LONG).show();
|
message, Snackbar.LENGTH_LONG).show();
|
||||||
setEnabled(true);
|
setEnabled(true);
|
||||||
} else {
|
} else {
|
||||||
@ -119,7 +108,7 @@ public class ZipExporterPreference extends Preference {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onClick() {
|
protected void onClick() {
|
||||||
getPrefActivity(this).ensurePermissions(
|
FragmentUtils.getPrefActivity(this).ensurePermissions(
|
||||||
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
|
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
|
||||||
(permissions, granted) -> {
|
(permissions, granted) -> {
|
||||||
if (granted.length > 0 && granted[0] == PackageManager.PERMISSION_GRANTED) {
|
if (granted.length > 0 && granted[0] == PackageManager.PERMISSION_GRANTED) {
|
||||||
|
@ -0,0 +1,25 @@
|
|||||||
|
/*
|
||||||
|
* Copyright © 2018 Harsh Shandilya <msfjarvis@gmail.com>
|
||||||
|
* Copyright © 2018 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
|
||||||
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
*/
|
||||||
|
package com.wireguard.android.util;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.support.v7.preference.Preference;
|
||||||
|
import android.view.ContextThemeWrapper;
|
||||||
|
|
||||||
|
import com.wireguard.android.activity.SettingsActivity;
|
||||||
|
|
||||||
|
public class FragmentUtils {
|
||||||
|
|
||||||
|
public static SettingsActivity getPrefActivity(final Preference preference) {
|
||||||
|
final Context context = preference.getContext();
|
||||||
|
if (context instanceof ContextThemeWrapper) {
|
||||||
|
if (((ContextThemeWrapper) context).getBaseContext() instanceof SettingsActivity) {
|
||||||
|
return ((SettingsActivity) ((ContextThemeWrapper) context).getBaseContext());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user