Fix following three issues in SD Card UX
1) Link should not work if up-events happen outside the target region
2) Activity should retain it's last state on changing configuration
3) Improve color contrast for "Format card" button
Bug: 246485658
Bug: 246681292
Bug: 246871051
Change-Id: Iebc87e35a3f8496a33a43d906b7faba05d95fe6c
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 1b69a58..ee7b1f9 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -2478,39 +2478,31 @@
<activity android:name=".deviceinfo.StorageWizardInit"
android:theme="@style/GlifTheme.Light"
android:exported="true"
- android:configChanges="keyboardHidden|orientation|screenSize"
android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<activity android:name=".deviceinfo.StorageWizardFormatProgress"
android:theme="@style/GlifTheme.Light"
- android:exported="false"
- android:configChanges="keyboardHidden|orientation|screenSize"/>
+ android:exported="false"/>
<activity android:name=".deviceinfo.StorageWizardFormatSlow"
android:theme="@style/GlifTheme.Light"
- android:exported="false"
- android:configChanges="keyboardHidden|orientation|screenSize"/>
+ android:exported="false"/>
<activity android:name=".deviceinfo.StorageWizardMigrateConfirm"
android:theme="@style/GlifTheme.Light"
- android:exported="false"
- android:configChanges="keyboardHidden|orientation|screenSize"/>
+ android:exported="false"/>
<activity android:name=".deviceinfo.StorageWizardMigrateProgress"
android:theme="@style/GlifTheme.Light"
android:exported="true"
- android:configChanges="keyboardHidden|orientation|screenSize"
android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<activity android:name=".deviceinfo.StorageWizardReady"
android:theme="@style/GlifTheme.Light"
android:exported="true"
- android:configChanges="keyboardHidden|orientation|screenSize"
android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<activity android:name=".deviceinfo.StorageWizardMoveConfirm"
android:theme="@style/GlifTheme.Light"
- android:exported="false"
- android:configChanges="keyboardHidden|orientation|screenSize"/>
+ android:exported="false"/>
<activity android:name=".deviceinfo.StorageWizardMoveProgress"
android:theme="@style/GlifTheme.Light"
android:exported="true"
- android:configChanges="keyboardHidden|orientation|screenSize"
android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<!-- Exported for SystemUI to trigger -->
diff --git a/res/layout/storage_internal_format.xml b/res/layout/storage_internal_format.xml
index f8224c4..337d2bf 100644
--- a/res/layout/storage_internal_format.xml
+++ b/res/layout/storage_internal_format.xml
@@ -47,9 +47,8 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/storage_menu_format_button"
- android:textColor="@android:color/white"
- android:backgroundTint="@color/storage_wizard_button_red" />
+ android:backgroundTint="?android:attr/colorAccent" />
</FrameLayout>
</LinearLayout>
-</androidx.core.widget.NestedScrollView>
+</androidx.core.widget.NestedScrollView>
\ No newline at end of file
diff --git a/src/com/android/settings/deviceinfo/StorageWizardBase.java b/src/com/android/settings/deviceinfo/StorageWizardBase.java
index 801baec..c39f384 100644
--- a/src/com/android/settings/deviceinfo/StorageWizardBase.java
+++ b/src/com/android/settings/deviceinfo/StorageWizardBase.java
@@ -47,6 +47,7 @@
import com.google.android.setupcompat.template.FooterButton;
import com.google.android.setupdesign.GlifLayout;
import com.google.android.setupdesign.util.ThemeHelper;
+import com.google.android.setupdesign.util.ThemeResolver;
import java.text.NumberFormat;
import java.util.List;
@@ -72,7 +73,15 @@
@Override
protected void onCreate(Bundle savedInstanceState) {
- setTheme(SetupWizardUtils.getTheme(this, getIntent()));
+ boolean isDayNightThemeSupportedBySuW = ThemeHelper.isSetupWizardDayNightEnabled(this);
+ int sudTheme =
+ new ThemeResolver.Builder(ThemeResolver.getDefault())
+ .setDefaultTheme(ThemeHelper.getSuwDefaultTheme(this))
+ .setUseDayNight(true)
+ .build()
+ .resolve("", !isDayNightThemeSupportedBySuW);
+
+ this.setTheme(sudTheme);
ThemeHelper.trySetDynamicColor(this);
super.onCreate(savedInstanceState);
diff --git a/src/com/android/settings/deviceinfo/StorageWizardInit.java b/src/com/android/settings/deviceinfo/StorageWizardInit.java
index 962c65c..8d04983 100644
--- a/src/com/android/settings/deviceinfo/StorageWizardInit.java
+++ b/src/com/android/settings/deviceinfo/StorageWizardInit.java
@@ -25,6 +25,7 @@
import android.text.method.LinkMovementMethod;
import android.text.style.TypefaceSpan;
import android.text.style.URLSpan;
+import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
@@ -41,6 +42,12 @@
private ViewFlipper mFlipper;
@Override
+ public void onSaveInstanceState(Bundle savedInstanceState) {
+ savedInstanceState.putBoolean("IS_PORTABLE", mPortable);
+ super.onSaveInstanceState(savedInstanceState);
+ }
+
+ @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (mDisk == null) {
@@ -64,15 +71,27 @@
mPortable = true;
mFlipper = (ViewFlipper) findViewById(R.id.viewFlipper);
- mFlipper.setDisplayedChild(0);
- setHeaderText(R.string.storage_wizard_init_v2_external_title,
- getDiskShortDescription());
-
- setNextButtonText(R.string.storage_wizard_init_v2_external_action);
- setBackButtonText(R.string.wizard_back_adoptable);
- setNextButtonVisibility(View.VISIBLE);
- if (!mDisk.isAdoptable()) {
- setBackButtonVisibility(View.GONE);
+ if (savedInstanceState != null) {
+ mPortable = savedInstanceState.getBoolean("IS_PORTABLE");
+ }
+ if(mPortable) {
+ mFlipper.setDisplayedChild(0);
+ setHeaderText(R.string.storage_wizard_init_v2_external_title,
+ getDiskShortDescription());
+ setNextButtonText(R.string.storage_wizard_init_v2_external_action);
+ setBackButtonText(R.string.wizard_back_adoptable);
+ setNextButtonVisibility(View.VISIBLE);
+ if (!mDisk.isAdoptable()) {
+ setBackButtonVisibility(View.GONE);
+ }
+ }
+ else {
+ mFlipper.setDisplayedChild(1);
+ setHeaderText(R.string.storage_wizard_init_v2_internal_title,
+ getDiskShortDescription());
+ setNextButtonText(R.string.storage_wizard_init_v2_internal_action);
+ setBackButtonText(R.string.wizard_back_adoptable);
+ setNextButtonVisibility(View.VISIBLE);
}
}
@@ -144,6 +163,8 @@
external_storage_textview.setMovementMethod(LinkMovementMethod.getInstance());
internal_storage_textview.setMovementMethod(LinkMovementMethod.getInstance());
+ external_storage_textview.setOnTouchListener(listener);
+ internal_storage_textview.setOnTouchListener(listener);
}
private Spannable styleFont(String text) {
@@ -154,4 +175,22 @@
}
return s;
}
+ private View.OnTouchListener listener = new View.OnTouchListener() {
+ @Override
+ public boolean onTouch(View v, MotionEvent event) {
+ if(event.getAction() == MotionEvent.ACTION_UP) {
+ if (isInside(v, event)) {
+ return false;
+ }
+ return true;
+ }
+ return false;
+ }
+
+ private boolean isInside(View v, MotionEvent event) {
+ return !(event.getX() < 0 || event.getY() < 0
+ || event.getX() > v.getMeasuredWidth()
+ || event.getY() > v.getMeasuredHeight());
+ }
+ };
}
\ No newline at end of file