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