Leanback Demo: demo of edit title

Bug 24673827

Change-Id: I1e4d9378cc862d748055387a71129692bd4cf53b
This commit is contained in:
Dake Gu
2015-10-05 13:44:29 -07:00
parent 6fe262dae9
commit c8ad1e5263
4 changed files with 82 additions and 15 deletions

View File

@@ -27,6 +27,7 @@ import android.support.v17.leanback.app.GuidedStepFragment;
import android.support.v17.leanback.widget.GuidedAction;
import android.support.v17.leanback.widget.GuidanceStylist;
import android.support.v17.leanback.widget.GuidanceStylist.Guidance;
import android.text.TextUtils;
import android.util.Log;
import android.view.ViewGroup;
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
@@ -41,8 +42,9 @@ public class GuidedStepActivity extends Activity {
private static final int CONTINUE = 1;
private static final int BACK = 2;
private static final int FIRST_NAME = 1;
private static final int LAST_NAME = 2;
private static final int FIRST_NAME = 3;
private static final int LAST_NAME = 4;
private static final int PAYMENT = 5;
private static final int OPTION_CHECK_SET_ID = 10;
private static final int DEFAULT_OPTION = 0;
@@ -96,6 +98,17 @@ public class GuidedStepActivity extends Activity {
.build());
}
private static void addEditableAction(List<GuidedAction> actions, long id, String title,
String editTitle, String desc) {
actions.add(new GuidedAction.Builder()
.id(id)
.title(title)
.editTitle(editTitle)
.description(desc)
.editable(true)
.build());
}
private static void addCheckedAction(List<GuidedAction> actions, int iconResId, Context context,
String title, String desc) {
actions.add(new GuidedAction.Builder()
@@ -158,16 +171,30 @@ public class GuidedStepActivity extends Activity {
public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
addEditableAction(actions, FIRST_NAME, "Pat", "Your first name");
addEditableAction(actions, LAST_NAME, "Smith", "Your last name");
addEditableAction(actions, PAYMENT, "Payment", "", "Input credit card number");
addAction(actions, CONTINUE, "Continue", "Continue");
}
@Override
public void onGuidedActionClicked(GuidedAction action) {
if (action.getId() == LAST_NAME) {
if (action.getId() == CONTINUE) {
FragmentManager fm = getFragmentManager();
GuidedStepFragment.add(fm, new ThirdStepFragment());
}
}
@Override
public void onGuidedActionEdited(GuidedAction action) {
CharSequence editTitle = action.getEditTitle();
if (TextUtils.isDigitsOnly(editTitle) && editTitle.length() == 16) {
editTitle = editTitle.subSequence(editTitle.length() - 4, editTitle.length());
action.setDescription("Visa XXXX-XXXX-XXXX-"+editTitle);
} else if (editTitle.length() == 0){
action.setDescription("Input credit card number");
} else {
action.setDescription("Error credit card number");
}
}
}
public static class ThirdStepFragment extends GuidedStepFragment {

View File

@@ -29,6 +29,7 @@ import android.support.v17.leanback.app.GuidedStepSupportFragment;
import android.support.v17.leanback.widget.GuidedAction;
import android.support.v17.leanback.widget.GuidanceStylist;
import android.support.v17.leanback.widget.GuidanceStylist.Guidance;
import android.text.TextUtils;
import android.util.Log;
import android.view.ViewGroup;
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
@@ -43,8 +44,9 @@ public class GuidedStepSupportActivity extends FragmentActivity {
private static final int CONTINUE = 1;
private static final int BACK = 2;
private static final int FIRST_NAME = 1;
private static final int LAST_NAME = 2;
private static final int FIRST_NAME = 3;
private static final int LAST_NAME = 4;
private static final int PAYMENT = 5;
private static final int OPTION_CHECK_SET_ID = 10;
private static final int DEFAULT_OPTION = 0;
@@ -98,6 +100,17 @@ public class GuidedStepSupportActivity extends FragmentActivity {
.build());
}
private static void addEditableAction(List<GuidedAction> actions, long id, String title,
String editTitle, String desc) {
actions.add(new GuidedAction.Builder()
.id(id)
.title(title)
.editTitle(editTitle)
.description(desc)
.editable(true)
.build());
}
private static void addCheckedAction(List<GuidedAction> actions, int iconResId, Context context,
String title, String desc) {
actions.add(new GuidedAction.Builder()
@@ -160,16 +173,30 @@ public class GuidedStepSupportActivity extends FragmentActivity {
public void onCreateActions(List<GuidedAction> actions, Bundle savedInstanceState) {
addEditableAction(actions, FIRST_NAME, "Pat", "Your first name");
addEditableAction(actions, LAST_NAME, "Smith", "Your last name");
addEditableAction(actions, PAYMENT, "Payment", "", "Input credit card number");
addAction(actions, CONTINUE, "Continue", "Continue");
}
@Override
public void onGuidedActionClicked(GuidedAction action) {
if (action.getId() == LAST_NAME) {
if (action.getId() == CONTINUE) {
FragmentManager fm = getFragmentManager();
GuidedStepSupportFragment.add(fm, new ThirdStepFragment());
}
}
@Override
public void onGuidedActionEdited(GuidedAction action) {
CharSequence editTitle = action.getEditTitle();
if (TextUtils.isDigitsOnly(editTitle) && editTitle.length() == 16) {
editTitle = editTitle.subSequence(editTitle.length() - 4, editTitle.length());
action.setDescription("Visa XXXX-XXXX-XXXX-"+editTitle);
} else if (editTitle.length() == 0){
action.setDescription("Input credit card number");
} else {
action.setDescription("Error credit card number");
}
}
}
public static class ThirdStepFragment extends GuidedStepSupportFragment {

View File

@@ -17,6 +17,7 @@ package android.support.v17.leanback.supportleanbackshowcase.app.wizard;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.TextUtils;
import android.support.annotation.NonNull;
import android.support.v17.leanback.app.GuidedStepFragment;
import android.support.v17.leanback.supportleanbackshowcase.R;
@@ -69,19 +70,29 @@ public class WizardExample2ndStepFragment extends WizardExampleBaseStepFragment
action = new GuidedAction.Builder()
.id(ACTION_ID_PAYMENT_METHOD)
.title(getString(R.string.wizard_example_payment_method))
.description(getString(R.string.wizard_example_visa_balance))
.editable(false)
.editTitle("")
.description(getString(R.string.wizard_example_input_credit))
.editable(true)
.build();
actions.add(action);
}
@Override
public void onGuidedActionClicked(GuidedAction action) {
if (ACTION_ID_PAYMENT_METHOD == action.getId()) {
Toast.makeText(getActivity(),
getString(R.string.wizard_example_toast_payment_method_clicked),
Toast.LENGTH_SHORT).show();
public void onGuidedActionEdited(GuidedAction action) {
CharSequence editTitle = action.getEditTitle();
if (TextUtils.isDigitsOnly(editTitle) && editTitle.length() == 16) {
action.setDescription(getString(R.string.wizard_example_visa,
editTitle.subSequence(editTitle.length() - 4, editTitle.length())));
} else if (editTitle.length() == 0) {
action.setDescription(getString(R.string.wizard_example_input_credit));
} else {
action.setDescription(getString(R.string.wizard_example_input_credit_wrong));
}
}
@Override
public void onGuidedActionClicked(GuidedAction action) {
if (ACTION_ID_CONFIRM == action.getId()) {
GuidedStepFragment fragment = new WizardExample3rdStepFragment();
fragment.setArguments(getArguments());
add(getFragmentManager(), fragment);

View File

@@ -51,6 +51,8 @@
<string name="wizard_example_watch_now">Watch now</string>
<string name="wizard_example_later">Later</string>
<string name="wizard_example_watch_now_clicked">\'Watch now\' clicked.</string>
<string name="wizard_example_visa_balance">Visa - 1234 Balance $60.00</string>
<string name="wizard_example_just_a_second">Just a second...</string>
<string name="wizard_example_input_credit">Input credit card number</string>
<string name="wizard_example_visa">Visa XXXX-XXXX-XXXX-%s</string>
<string name="wizard_example_input_credit_wrong">Error credit card number</string>
s<string name="wizard_example_just_a_second">Just a second...</string>
</resources>