Sets the scroll indicators for edit shortcut dialog.

- The indicators appears while content view is out of vision for vertical scrolling.

Bug: 142531156
Test: local test
Change-Id: Ifa1966b1df7628029976d27d72d2ae63d84e28c3
This commit is contained in:
menghanli
2020-04-08 16:10:37 +08:00
parent 5a8e9e452a
commit bff36f7e8c
5 changed files with 22 additions and 7 deletions

View File

@@ -16,6 +16,7 @@
--> -->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:scrollbarStyle="outsideOverlay"> android:scrollbarStyle="outsideOverlay">
@@ -24,8 +25,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:paddingEnd="24dp" android:padding="24dp">
android:paddingStart="24dp">
<TextView <TextView
style="@style/AccessibilityDialogDescription" style="@style/AccessibilityDialogDescription"

View File

@@ -17,6 +17,7 @@
<ScrollView <ScrollView
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:scrollbarStyle="outsideOverlay"> android:scrollbarStyle="outsideOverlay">
@@ -38,4 +39,4 @@
</LinearLayout> </LinearLayout>
</ScrollView> </ScrollView>

View File

@@ -16,6 +16,7 @@
--> -->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:scrollbarStyle="outsideOverlay"> android:scrollbarStyle="outsideOverlay">

View File

@@ -29,6 +29,7 @@ import android.view.View;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.ColorInt; import androidx.annotation.ColorInt;
@@ -76,7 +77,7 @@ public class AccessibilityEditDialogUtils {
final AlertDialog alertDialog = createDialog(context, DialogType.EDIT_SHORTCUT_GENERIC, final AlertDialog alertDialog = createDialog(context, DialogType.EDIT_SHORTCUT_GENERIC,
dialogTitle, listener); dialogTitle, listener);
alertDialog.show(); alertDialog.show();
setScrollIndicators(alertDialog);
return alertDialog; return alertDialog;
} }
@@ -93,7 +94,7 @@ public class AccessibilityEditDialogUtils {
final AlertDialog alertDialog = createDialog(context, final AlertDialog alertDialog = createDialog(context,
DialogType.EDIT_SHORTCUT_MAGNIFICATION, dialogTitle, listener); DialogType.EDIT_SHORTCUT_MAGNIFICATION, dialogTitle, listener);
alertDialog.show(); alertDialog.show();
setScrollIndicators(alertDialog);
return alertDialog; return alertDialog;
} }
@@ -110,7 +111,7 @@ public class AccessibilityEditDialogUtils {
final AlertDialog alertDialog = createDialog(context, final AlertDialog alertDialog = createDialog(context,
DialogType.EDIT_MAGNIFICATION_MODE, dialogTitle, listener); DialogType.EDIT_MAGNIFICATION_MODE, dialogTitle, listener);
alertDialog.show(); alertDialog.show();
setScrollIndicators(alertDialog);
return alertDialog; return alertDialog;
} }
@@ -128,6 +129,17 @@ public class AccessibilityEditDialogUtils {
return alertDialog; return alertDialog;
} }
/**
* Sets the scroll indicators for dialog view. The indicators appears while content view is
* out of vision for vertical scrolling.
*/
private static void setScrollIndicators(AlertDialog dialog) {
final ScrollView scrollView = dialog.findViewById(R.id.container_layout);
scrollView.setScrollIndicators(
View.SCROLL_INDICATOR_TOP | View.SCROLL_INDICATOR_BOTTOM,
View.SCROLL_INDICATOR_TOP | View.SCROLL_INDICATOR_BOTTOM);
}
/** /**
* Get a content View for the edit shortcut dialog. * Get a content View for the edit shortcut dialog.
* *

View File

@@ -42,6 +42,7 @@ import android.view.accessibility.AccessibilityManager.TouchExplorationStateChan
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.ImageView; import android.widget.ImageView;
import androidx.appcompat.app.AlertDialog;
import androidx.preference.Preference; import androidx.preference.Preference;
import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
@@ -242,7 +243,7 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference
case DialogEnums.EDIT_SHORTCUT: case DialogEnums.EDIT_SHORTCUT:
final CharSequence dialogTitle = getPrefContext().getString( final CharSequence dialogTitle = getPrefContext().getString(
R.string.accessibility_shortcut_title, mPackageName); R.string.accessibility_shortcut_title, mPackageName);
Dialog dialog = AccessibilityEditDialogUtils.showEditShortcutDialog( final AlertDialog dialog = AccessibilityEditDialogUtils.showEditShortcutDialog(
getPrefContext(), dialogTitle, this::callOnAlertDialogCheckboxClicked); getPrefContext(), dialogTitle, this::callOnAlertDialogCheckboxClicked);
initializeDialogCheckBox(dialog); initializeDialogCheckBox(dialog);
return dialog; return dialog;