From 0cc2cba88359d6405ba6064e22205217e392fcb3 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Thu, 13 May 2021 10:11:07 -0300 Subject: [PATCH] Clean up device fragments and utilize dsl toolbar. --- .../securesms/DeviceActivity.java | 32 +++++++++------ .../securesms/DeviceAddFragment.java | 8 ++-- .../securesms/DeviceLinkFragment.java | 2 +- .../securesms/DeviceListFragment.java | 41 +++++-------------- app/src/main/res/layout/device_activity.xml | 15 +++++++ 5 files changed, 50 insertions(+), 48 deletions(-) create mode 100644 app/src/main/res/layout/device_activity.xml diff --git a/app/src/main/java/org/thoughtcrime/securesms/DeviceActivity.java b/app/src/main/java/org/thoughtcrime/securesms/DeviceActivity.java index cbc2f603cb..4aca9df1c2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/DeviceActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/DeviceActivity.java @@ -16,6 +16,7 @@ import android.widget.Button; import android.widget.Toast; import androidx.annotation.NonNull; +import androidx.appcompat.widget.Toolbar; import androidx.core.content.ContextCompat; import org.signal.core.util.ThreadUtil; @@ -27,6 +28,7 @@ import org.thoughtcrime.securesms.permissions.Permissions; import org.thoughtcrime.securesms.qr.ScanListener; import org.thoughtcrime.securesms.util.Base64; import org.thoughtcrime.securesms.util.DynamicLanguage; +import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme; import org.thoughtcrime.securesms.util.DynamicTheme; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.task.ProgressDialogAsyncTask; @@ -47,7 +49,7 @@ public class DeviceActivity extends PassphraseRequiredActivity private static final String TAG = Log.tag(DeviceActivity.class); - private final DynamicTheme dynamicTheme = new DynamicTheme(); + private final DynamicTheme dynamicTheme = new DynamicNoActionBarTheme(); private final DynamicLanguage dynamicLanguage = new DynamicLanguage(); private DeviceAddFragment deviceAddFragment; @@ -62,9 +64,14 @@ public class DeviceActivity extends PassphraseRequiredActivity @Override public void onCreate(Bundle bundle, boolean ready) { - getSupportActionBar().setHomeAsUpIndicator(ContextCompat.getDrawable(this, R.drawable.ic_arrow_left_24)); - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - getSupportActionBar().setTitle(R.string.AndroidManifest__linked_devices); + setContentView(R.layout.device_activity); + + Toolbar toolbar = findViewById(R.id.toolbar); + + setSupportActionBar(toolbar); + requireSupportActionBar().setDisplayHomeAsUpEnabled(true); + requireSupportActionBar().setTitle(R.string.AndroidManifest__linked_devices); + this.deviceAddFragment = new DeviceAddFragment(); this.deviceListFragment = new DeviceListFragment(); this.deviceLinkFragment = new DeviceLinkFragment(); @@ -73,9 +80,9 @@ public class DeviceActivity extends PassphraseRequiredActivity this.deviceAddFragment.setScanListener(this); if (getIntent().getBooleanExtra("add", false)) { - initFragment(android.R.id.content, deviceAddFragment, dynamicLanguage.getCurrentLocale()); + initFragment(R.id.fragment_container, deviceAddFragment, dynamicLanguage.getCurrentLocale()); } else { - initFragment(android.R.id.content, deviceListFragment, dynamicLanguage.getCurrentLocale()); + initFragment(R.id.fragment_container, deviceListFragment, dynamicLanguage.getCurrentLocale()); } } @@ -88,8 +95,9 @@ public class DeviceActivity extends PassphraseRequiredActivity @Override public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case android.R.id.home: finish(); return true; + if (item.getItemId() == android.R.id.home) { + finish(); + return true; } return false; @@ -103,7 +111,7 @@ public class DeviceActivity extends PassphraseRequiredActivity .withPermanentDenialDialog(getString(R.string.DeviceActivity_signal_needs_the_camera_permission_in_order_to_scan_a_qr_code)) .onAllGranted(() -> { getSupportFragmentManager().beginTransaction() - .replace(android.R.id.content, deviceAddFragment) + .replace(R.id.fragment_container, deviceAddFragment) .addToBackStack(null) .commitAllowingStateLoss(); }) @@ -118,7 +126,7 @@ public class DeviceActivity extends PassphraseRequiredActivity Uri uri = Uri.parse(data); deviceLinkFragment.setLinkClickedListener(uri, DeviceActivity.this); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + if (Build.VERSION.SDK_INT >= 21) { deviceAddFragment.setSharedElementReturnTransition(TransitionInflater.from(DeviceActivity.this).inflateTransition(R.transition.fragment_shared)); deviceAddFragment.setExitTransition(TransitionInflater.from(DeviceActivity.this).inflateTransition(android.R.transition.fade)); @@ -128,14 +136,14 @@ public class DeviceActivity extends PassphraseRequiredActivity getSupportFragmentManager().beginTransaction() .addToBackStack(null) .addSharedElement(deviceAddFragment.getDevicesImage(), "devices") - .replace(android.R.id.content, deviceLinkFragment) + .replace(R.id.fragment_container, deviceLinkFragment) .commit(); } else { getSupportFragmentManager().beginTransaction() .setCustomAnimations(R.anim.slide_from_bottom, R.anim.slide_to_bottom, R.anim.slide_from_bottom, R.anim.slide_to_bottom) - .replace(android.R.id.content, deviceLinkFragment) + .replace(R.id.fragment_container, deviceLinkFragment) .addToBackStack(null) .commit(); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/DeviceAddFragment.java b/app/src/main/java/org/thoughtcrime/securesms/DeviceAddFragment.java index cd446bc950..0ee8044087 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/DeviceAddFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/DeviceAddFragment.java @@ -42,9 +42,9 @@ public class DeviceAddFragment extends LoggingFragment { this.overlay.setOrientation(LinearLayout.VERTICAL); } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + if (Build.VERSION.SDK_INT >= 21) { this.container.addOnLayoutChangeListener(new View.OnLayoutChangeListener() { - @TargetApi(Build.VERSION_CODES.LOLLIPOP) + @TargetApi(21) @Override public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) @@ -80,7 +80,7 @@ public class DeviceAddFragment extends LoggingFragment { } @Override - public void onConfigurationChanged(Configuration newConfiguration) { + public void onConfigurationChanged(@NonNull Configuration newConfiguration) { super.onConfigurationChanged(newConfiguration); this.scannerView.onPause(); @@ -107,6 +107,4 @@ public class DeviceAddFragment extends LoggingFragment { this.scanningThread.setScanListener(scanListener); } } - - } diff --git a/app/src/main/java/org/thoughtcrime/securesms/DeviceLinkFragment.java b/app/src/main/java/org/thoughtcrime/securesms/DeviceLinkFragment.java index 1a3b8a9ff4..21f72c1397 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/DeviceLinkFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/DeviceLinkFragment.java @@ -32,7 +32,7 @@ public class DeviceLinkFragment extends Fragment implements View.OnClickListener } @Override - public void onConfigurationChanged(Configuration newConfiguration) { + public void onConfigurationChanged(@NonNull Configuration newConfiguration) { super.onConfigurationChanged(newConfiguration); if (newConfiguration.orientation == Configuration.ORIENTATION_LANDSCAPE) { container.setOrientation(LinearLayout.HORIZONTAL); diff --git a/app/src/main/java/org/thoughtcrime/securesms/DeviceListFragment.java b/app/src/main/java/org/thoughtcrime/securesms/DeviceListFragment.java index 9a89a72bda..1a9281f853 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/DeviceListFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/DeviceListFragment.java @@ -21,6 +21,7 @@ import androidx.fragment.app.ListFragment; import androidx.loader.app.LoaderManager; import androidx.loader.content.Loader; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.melnykov.fab.FloatingActionButton; import org.signal.core.util.logging.Log; @@ -52,12 +53,12 @@ public class DeviceListFragment extends ListFragment @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - this.locale = (Locale) getArguments().getSerializable(PassphraseRequiredActivity.LOCALE_EXTRA); + this.locale = (Locale) requireArguments().getSerializable(PassphraseRequiredActivity.LOCALE_EXTRA); } @Override - public void onAttach(Activity activity) { - super.onAttach(activity); + public void onAttach(@NonNull Context context) { + super.onAttach(context); this.accountManager = ApplicationDependencies.getSignalServiceAccountManager(); } @@ -121,42 +122,22 @@ public class DeviceListFragment extends ListFragment final String deviceName = ((DeviceListItem)view).getDeviceName(); final long deviceId = ((DeviceListItem)view).getDeviceId(); - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - builder.setTitle(getActivity().getString(R.string.DeviceListActivity_unlink_s, deviceName)); + AlertDialog.Builder builder = new MaterialAlertDialogBuilder(requireActivity()); + builder.setTitle(getString(R.string.DeviceListActivity_unlink_s, deviceName)); builder.setMessage(R.string.DeviceListActivity_by_unlinking_this_device_it_will_no_longer_be_able_to_send_or_receive); builder.setNegativeButton(android.R.string.cancel, null); - builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - handleDisconnectDevice(deviceId); - } - }); + builder.setPositiveButton(android.R.string.ok, (dialog, which) -> handleDisconnectDevice(deviceId)); builder.show(); } private void handleLoaderFailed() { - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + AlertDialog.Builder builder = new MaterialAlertDialogBuilder(requireActivity()); builder.setMessage(R.string.DeviceListActivity_network_connection_failed); builder.setPositiveButton(R.string.DeviceListActivity_try_again, - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - getLoaderManager().restartLoader(0, null, DeviceListFragment.this); - } - }); + (dialog, which) -> getLoaderManager().restartLoader(0, null, DeviceListFragment.this)); - builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - DeviceListFragment.this.getActivity().onBackPressed(); - } - }); - builder.setOnCancelListener(new DialogInterface.OnCancelListener() { - @Override - public void onCancel(DialogInterface dialog) { - DeviceListFragment.this.getActivity().onBackPressed(); - } - }); + builder.setNegativeButton(android.R.string.cancel, (dialog, which) -> requireActivity().onBackPressed()); + builder.setOnCancelListener(dialog -> requireActivity().onBackPressed()); builder.show(); } diff --git a/app/src/main/res/layout/device_activity.xml b/app/src/main/res/layout/device_activity.xml new file mode 100644 index 0000000000..22a51e4fc3 --- /dev/null +++ b/app/src/main/res/layout/device_activity.xml @@ -0,0 +1,15 @@ + + + + + + + + \ No newline at end of file