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"
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 -->

View File

@@ -47,8 +47,7 @@
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>

View File

@@ -47,6 +47,7 @@ import com.google.android.setupcompat.template.FooterBarMixin;
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 @@ public abstract class StorageWizardBase extends FragmentActivity {
@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);

View File

@@ -25,6 +25,7 @@ import android.text.Spannable;
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;
@@ -40,6 +41,12 @@ public class StorageWizardInit extends StorageWizardBase {
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);
@@ -64,15 +71,27 @@ public class StorageWizardInit extends StorageWizardBase {
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 @@ public class StorageWizardInit extends StorageWizardBase {
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 @@ public class StorageWizardInit extends StorageWizardBase {
}
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());
}
};
}