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
This commit is contained in:
Sayak Dutta
2022-09-14 06:50:17 +00:00
parent 1d302c6fd8
commit 4c36d4903d
4 changed files with 64 additions and 25 deletions

View File

@@ -2478,39 +2478,31 @@
<activity android:name=".deviceinfo.StorageWizardInit" <activity android:name=".deviceinfo.StorageWizardInit"
android:theme="@style/GlifTheme.Light" android:theme="@style/GlifTheme.Light"
android:exported="true" android:exported="true"
android:configChanges="keyboardHidden|orientation|screenSize"
android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<activity android:name=".deviceinfo.StorageWizardFormatProgress" <activity android:name=".deviceinfo.StorageWizardFormatProgress"
android:theme="@style/GlifTheme.Light" android:theme="@style/GlifTheme.Light"
android:exported="false" android:exported="false"/>
android:configChanges="keyboardHidden|orientation|screenSize"/>
<activity android:name=".deviceinfo.StorageWizardFormatSlow" <activity android:name=".deviceinfo.StorageWizardFormatSlow"
android:theme="@style/GlifTheme.Light" android:theme="@style/GlifTheme.Light"
android:exported="false" android:exported="false"/>
android:configChanges="keyboardHidden|orientation|screenSize"/>
<activity android:name=".deviceinfo.StorageWizardMigrateConfirm" <activity android:name=".deviceinfo.StorageWizardMigrateConfirm"
android:theme="@style/GlifTheme.Light" android:theme="@style/GlifTheme.Light"
android:exported="false" android:exported="false"/>
android:configChanges="keyboardHidden|orientation|screenSize"/>
<activity android:name=".deviceinfo.StorageWizardMigrateProgress" <activity android:name=".deviceinfo.StorageWizardMigrateProgress"
android:theme="@style/GlifTheme.Light" android:theme="@style/GlifTheme.Light"
android:exported="true" android:exported="true"
android:configChanges="keyboardHidden|orientation|screenSize"
android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<activity android:name=".deviceinfo.StorageWizardReady" <activity android:name=".deviceinfo.StorageWizardReady"
android:theme="@style/GlifTheme.Light" android:theme="@style/GlifTheme.Light"
android:exported="true" android:exported="true"
android:configChanges="keyboardHidden|orientation|screenSize"
android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<activity android:name=".deviceinfo.StorageWizardMoveConfirm" <activity android:name=".deviceinfo.StorageWizardMoveConfirm"
android:theme="@style/GlifTheme.Light" android:theme="@style/GlifTheme.Light"
android:exported="false" android:exported="false"/>
android:configChanges="keyboardHidden|orientation|screenSize"/>
<activity android:name=".deviceinfo.StorageWizardMoveProgress" <activity android:name=".deviceinfo.StorageWizardMoveProgress"
android:theme="@style/GlifTheme.Light" android:theme="@style/GlifTheme.Light"
android:exported="true" android:exported="true"
android:configChanges="keyboardHidden|orientation|screenSize"
android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<!-- Exported for SystemUI to trigger --> <!-- Exported for SystemUI to trigger -->

View File

@@ -47,8 +47,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:text="@string/storage_menu_format_button" android:text="@string/storage_menu_format_button"
android:textColor="@android:color/white" android:backgroundTint="?android:attr/colorAccent" />
android:backgroundTint="@color/storage_wizard_button_red" />
</FrameLayout> </FrameLayout>
</LinearLayout> </LinearLayout>

View File

@@ -47,6 +47,7 @@ import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupcompat.template.FooterButton; import com.google.android.setupcompat.template.FooterButton;
import com.google.android.setupdesign.GlifLayout; import com.google.android.setupdesign.GlifLayout;
import com.google.android.setupdesign.util.ThemeHelper; import com.google.android.setupdesign.util.ThemeHelper;
import com.google.android.setupdesign.util.ThemeResolver;
import java.text.NumberFormat; import java.text.NumberFormat;
import java.util.List; import java.util.List;
@@ -72,7 +73,15 @@ public abstract class StorageWizardBase extends FragmentActivity {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { 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); ThemeHelper.trySetDynamicColor(this);
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);

View File

@@ -25,6 +25,7 @@ import android.text.Spannable;
import android.text.method.LinkMovementMethod; import android.text.method.LinkMovementMethod;
import android.text.style.TypefaceSpan; import android.text.style.TypefaceSpan;
import android.text.style.URLSpan; import android.text.style.URLSpan;
import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
@@ -40,6 +41,12 @@ public class StorageWizardInit extends StorageWizardBase {
private ViewFlipper mFlipper; private ViewFlipper mFlipper;
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putBoolean("IS_PORTABLE", mPortable);
super.onSaveInstanceState(savedInstanceState);
}
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
@@ -64,10 +71,13 @@ public class StorageWizardInit extends StorageWizardBase {
mPortable = true; mPortable = true;
mFlipper = (ViewFlipper) findViewById(R.id.viewFlipper); mFlipper = (ViewFlipper) findViewById(R.id.viewFlipper);
if (savedInstanceState != null) {
mPortable = savedInstanceState.getBoolean("IS_PORTABLE");
}
if(mPortable) {
mFlipper.setDisplayedChild(0); mFlipper.setDisplayedChild(0);
setHeaderText(R.string.storage_wizard_init_v2_external_title, setHeaderText(R.string.storage_wizard_init_v2_external_title,
getDiskShortDescription()); getDiskShortDescription());
setNextButtonText(R.string.storage_wizard_init_v2_external_action); setNextButtonText(R.string.storage_wizard_init_v2_external_action);
setBackButtonText(R.string.wizard_back_adoptable); setBackButtonText(R.string.wizard_back_adoptable);
setNextButtonVisibility(View.VISIBLE); setNextButtonVisibility(View.VISIBLE);
@@ -75,6 +85,15 @@ public class StorageWizardInit extends StorageWizardBase {
setBackButtonVisibility(View.GONE); 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);
}
}
@Override @Override
public void onNavigateBack(View v) { public void onNavigateBack(View v) {
@@ -144,6 +163,8 @@ public class StorageWizardInit extends StorageWizardBase {
external_storage_textview.setMovementMethod(LinkMovementMethod.getInstance()); external_storage_textview.setMovementMethod(LinkMovementMethod.getInstance());
internal_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) { private Spannable styleFont(String text) {
@@ -154,4 +175,22 @@ public class StorageWizardInit extends StorageWizardBase {
} }
return s; 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());
}
};
} }