diff --git a/android/java/org/chromium/chrome/browser/settings/BraveVpnPreferences.java b/android/java/org/chromium/chrome/browser/settings/BraveVpnPreferences.java index c016fa440a3..be310a22d54 100644 --- a/android/java/org/chromium/chrome/browser/settings/BraveVpnPreferences.java +++ b/android/java/org/chromium/chrome/browser/settings/BraveVpnPreferences.java @@ -504,8 +504,10 @@ public class BraveVpnPreferences extends BravePreferenceFragment implements Brav BraveVpnUtils.showProgressDialog( getActivity(), getResources().getString(R.string.resetting_config)); new Handler().postDelayed(() -> { - BraveVpnUtils.resetProfileConfiguration(getActivity()); - new Handler().post(() -> updateSummaries()); + if (isResumed()) { + BraveVpnUtils.resetProfileConfiguration(getActivity()); + new Handler().post(() -> updateSummaries()); + } }, INVALIDATE_CREDENTIAL_TIMER_COUNT); } } diff --git a/android/java/org/chromium/chrome/browser/vpn/split_tunnel/ApplicationDataModel.java b/android/java/org/chromium/chrome/browser/vpn/split_tunnel/ApplicationDataModel.java index 14265ca8422..37a9af42895 100644 --- a/android/java/org/chromium/chrome/browser/vpn/split_tunnel/ApplicationDataModel.java +++ b/android/java/org/chromium/chrome/browser/vpn/split_tunnel/ApplicationDataModel.java @@ -36,4 +36,4 @@ public class ApplicationDataModel { public boolean isSystemApp() { return mIsSystemApp; } -} \ No newline at end of file +} diff --git a/android/java/org/chromium/chrome/browser/vpn/split_tunnel/ApplicationListAdapter.java b/android/java/org/chromium/chrome/browser/vpn/split_tunnel/ApplicationListAdapter.java index 50adc6a5fe9..cb9bf8d0e3e 100644 --- a/android/java/org/chromium/chrome/browser/vpn/split_tunnel/ApplicationListAdapter.java +++ b/android/java/org/chromium/chrome/browser/vpn/split_tunnel/ApplicationListAdapter.java @@ -23,14 +23,10 @@ import java.util.List; import java.util.Set; public class ApplicationListAdapter extends RecyclerView.Adapter { - interface OnApplicationClickListener { - void onApplicationCLick( - ApplicationDataModel applicationDataModel, int position, boolean isExcludeApps); - } - private final SortedList mApplicationList; private final OnApplicationClickListener mOnApplicationClickListener; private final boolean mIsExcludedApps; + private static final int ANIMATION_DURATION = 1000; public Set getApplicationPackages() { Set applicationSet = new HashSet<>(); @@ -120,7 +116,7 @@ public class ApplicationListAdapter extends RecyclerView.Adapter> excludedApplicationDataLiveData; - MutableLiveData> applicationDataLiveData; - MutableLiveData> systemApplicationDataLiveData; + private final MutableLiveData> + mExcludedApplicationDataMutableLiveData = new MutableLiveData<>(); + LiveData> mExcludedApplicationDataLiveData = + mExcludedApplicationDataMutableLiveData; - public ApplicationViewModel() { - excludedApplicationDataLiveData = new MutableLiveData<>(); - applicationDataLiveData = new MutableLiveData<>(); - systemApplicationDataLiveData = new MutableLiveData<>(); + private final MutableLiveData> mApplicationDataMutableLiveData = + new MutableLiveData<>(); + LiveData> mApplicationDataLiveData = mApplicationDataMutableLiveData; + + private final MutableLiveData> + mSystemApplicationDataMutableLiveData = new MutableLiveData<>(); + LiveData> mSystemApplicationDataLiveData = + mSystemApplicationDataMutableLiveData; + + public LiveData> getExcludedApplicationDataLiveData() { + return mExcludedApplicationDataLiveData; } - public MutableLiveData> getExcludedApplicationDataLiveData() { - return excludedApplicationDataLiveData; + public LiveData> getApplicationDataMutableLiveData() { + return mApplicationDataLiveData; } - - public MutableLiveData> getApplicationDataMutableLiveData() { - return applicationDataLiveData; - } - public MutableLiveData> getSystemApplicationDataMutableLiveData() { - return systemApplicationDataLiveData; + public LiveData> getSystemApplicationDataMutableLiveData() { + return mSystemApplicationDataLiveData; } public void getApplications(Activity activity) { @@ -71,9 +76,9 @@ public class ApplicationViewModel extends ViewModel { applicationDataModels.add(applicationDataModel); } } - excludedApplicationDataLiveData.postValue(excludedApplicationDataModels); - systemApplicationDataLiveData.postValue(systemApplicationDataModels); - applicationDataLiveData.postValue(applicationDataModels); + mExcludedApplicationDataMutableLiveData.postValue(excludedApplicationDataModels); + mSystemApplicationDataMutableLiveData.postValue(systemApplicationDataModels); + mApplicationDataMutableLiveData.postValue(applicationDataModels); }); } diff --git a/android/java/org/chromium/chrome/browser/vpn/split_tunnel/SplitTunnelActivity.java b/android/java/org/chromium/chrome/browser/vpn/split_tunnel/SplitTunnelActivity.java index 3e845c92377..8d2fcdc98e7 100644 --- a/android/java/org/chromium/chrome/browser/vpn/split_tunnel/SplitTunnelActivity.java +++ b/android/java/org/chromium/chrome/browser/vpn/split_tunnel/SplitTunnelActivity.java @@ -26,7 +26,6 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import org.chromium.chrome.R; -import org.chromium.chrome.browser.firstrun.BraveFirstRunFlowSequencer; import org.chromium.chrome.browser.init.AsyncInitializationActivity; import org.chromium.chrome.browser.vpn.BraveVpnNativeWorker; import org.chromium.chrome.browser.vpn.utils.BraveVpnPrefUtils; @@ -34,7 +33,6 @@ import org.chromium.chrome.browser.vpn.utils.BraveVpnUtils; public class SplitTunnelActivity extends AsyncInitializationActivity implements LifecycleOwner, ApplicationListAdapter.OnApplicationClickListener { - private BraveFirstRunFlowSequencer mFirstRunFlowSequencer; private RecyclerView mRecyclerViewSystemApps; private ApplicationListAdapter mRecyclerViewAdapterExcludedApps; private ApplicationListAdapter mRecyclerViewAdapterApps; @@ -50,32 +48,20 @@ public class SplitTunnelActivity extends AsyncInitializationActivity actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setTitle(getResources().getString(R.string.split_tunneling)); - LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); - linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); - DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(SplitTunnelActivity.this, LinearLayoutManager.VERTICAL); RecyclerView recyclerViewExcludedApps = findViewById(R.id.rv_excluded_apps); - recyclerViewExcludedApps.setLayoutManager(linearLayoutManager); recyclerViewExcludedApps.addItemDecoration(dividerItemDecoration); mRecyclerViewAdapterExcludedApps = new ApplicationListAdapter(this, true); recyclerViewExcludedApps.setAdapter(mRecyclerViewAdapterExcludedApps); - LinearLayoutManager linearLayoutManager2 = new LinearLayoutManager(this); - linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); - RecyclerView recyclerViewApps = findViewById(R.id.rv_apps); - recyclerViewApps.setLayoutManager(linearLayoutManager2); recyclerViewApps.addItemDecoration(dividerItemDecoration); mRecyclerViewAdapterApps = new ApplicationListAdapter(this, false); recyclerViewApps.setAdapter(mRecyclerViewAdapterApps); - LinearLayoutManager linearLayoutManager3 = new LinearLayoutManager(this); - linearLayoutManager3.setOrientation(LinearLayoutManager.VERTICAL); - mRecyclerViewSystemApps = findViewById(R.id.rv_system_apps); - mRecyclerViewSystemApps.setLayoutManager(linearLayoutManager3); mRecyclerViewSystemApps.addItemDecoration(dividerItemDecoration); mRecyclerViewAdapterSystemApps = new ApplicationListAdapter(this, false); mRecyclerViewSystemApps.setAdapter(mRecyclerViewAdapterSystemApps); @@ -116,13 +102,7 @@ public class SplitTunnelActivity extends AsyncInitializationActivity @Override protected void triggerLayoutInflation() { - mFirstRunFlowSequencer = new BraveFirstRunFlowSequencer(this) { - @Override - public void onFlowIsKnown(Bundle freProperties) { - initializeViews(); - } - }; - mFirstRunFlowSequencer.start(); + initializeViews(); onInitialLayoutInflationComplete(); } @@ -173,7 +153,11 @@ public class SplitTunnelActivity extends AsyncInitializationActivity mRecyclerViewAdapterApps.removeApplication(applicationDataModel); } } - findViewById(R.id.empty_excluded_apps_text).setVisibility(mRecyclerViewAdapterExcludedApps.getApplicationPackages().size() > 0 ? View.GONE : View.VISIBLE); + findViewById(R.id.empty_excluded_apps_text) + .setVisibility( + mRecyclerViewAdapterExcludedApps.getApplicationPackages().size() > 0 + ? View.GONE + : View.VISIBLE); } } @@ -181,4 +165,4 @@ public class SplitTunnelActivity extends AsyncInitializationActivity public boolean shouldStartGpuProcess() { return true; } -} \ No newline at end of file +} diff --git a/android/java/res/layout/activity_split_tunnel.xml b/android/java/res/layout/activity_split_tunnel.xml index 182ef927118..0f8452731ac 100644 --- a/android/java/res/layout/activity_split_tunnel.xml +++ b/android/java/res/layout/activity_split_tunnel.xml @@ -54,6 +54,7 @@ android:id="@+id/rv_excluded_apps" android:layout_width="match_parent" android:layout_height="wrap_content" + app:layoutManager="LinearLayoutManager" android:nestedScrollingEnabled="true" /> @@ -97,4 +100,4 @@ - \ No newline at end of file + diff --git a/android/java/res/layout/application_item_layout.xml b/android/java/res/layout/application_item_layout.xml index 7a0e3065167..ddb10c926eb 100644 --- a/android/java/res/layout/application_item_layout.xml +++ b/android/java/res/layout/application_item_layout.xml @@ -7,8 +7,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:gravity="center_vertical" android:orientation="horizontal" - android:paddingTop="8dp" - android:paddingBottom="8dp"> + android:paddingVertical="8dp"> - \ No newline at end of file +