Commit 92d20848 authored by Bartek Fabiszewski's avatar Bartek Fabiszewski
Browse files

On self check from menu, rerun checks if fragment already loaded

parent fe772ab4
Loading
Loading
Loading
Loading
+20 −5
Original line number Diff line number Diff line
@@ -143,11 +143,7 @@ public class MainActivity extends AppCompatActivity
            settingsLauncher.launch(intent);
            return true;
        } else if (id == R.id.menu_self_check) {
            SelfCheckFragment fragment = new SelfCheckFragment();
            FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
            transaction.replace(R.id.fragment_placeholder, fragment);
            transaction.addToBackStack(null);
            transaction.commit();
            loadSelfCheckFragment();
            return true;
        } else if (id == R.id.menu_about) {
            showAbout();
@@ -165,6 +161,25 @@ public class MainActivity extends AppCompatActivity
        return super.onOptionsItemSelected(item);
    }

    /**
     * Load SelfCheckFragment or run it's self check action if already loaded
     */
    private void loadSelfCheckFragment() {
        FragmentManager fragmentManager = getSupportFragmentManager();
        Fragment currentFragment = fragmentManager.findFragmentById(R.id.fragment_placeholder);
        if (currentFragment instanceof SelfCheckFragment) {
            if (Logger.DEBUG) { Log.d(TAG, "[SelfCheckFragment already loaded]"); }
            ((SelfCheckFragment) currentFragment).setRefreshing(true);
            ((SelfCheckFragment) currentFragment).selfCheck();
            return;
        }
        SelfCheckFragment fragment = new SelfCheckFragment();
        FragmentTransaction transaction = fragmentManager.beginTransaction();
        transaction.replace(R.id.fragment_placeholder, fragment);
        transaction.addToBackStack(null);
        transaction.commit();
    }

    /**
     * Reread user preferences
     */
+2 −2
Original line number Diff line number Diff line
@@ -118,7 +118,7 @@ public class SelfCheckFragment extends Fragment implements PermissionHelper.Perm
        return layout;
    }

    private void selfCheck() {
    public void selfCheck() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            checkPermissions();
        }
@@ -126,7 +126,7 @@ public class SelfCheckFragment extends Fragment implements PermissionHelper.Perm
        checkServer();
    }

    private void setRefreshing(boolean refreshing) {
    public void setRefreshing(boolean refreshing) {
        swipe.setRefreshing(refreshing);
    }